Python日期操作入门教程详解

1. 日期输出格式化

所有日期、时间的api都在datetime模块内。

1. datetime => string

1 now = datetime.datetime.now() 

2 now.strftime('%Y-%m-%d %H:%M:%S')
输出2012-03-05 16:26:23.870105

strftime是datetime类的实例方法。

2. string => datetime

1 t_str = '2012-03-05 16:26:23'

2 d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')

strptime是datetime类的静态方法。

2. 日期比较操作

在datetime模块中有timedelta类,这个类的对象用于表示一个时间间隔,比如两个日期或者时间的差别。

构造方法:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

所有的参数都有默认值0,这些参数可以是int或float,正的或负的。

可以通过timedelta.days、tiemdelta.seconds等获取相应的时间值。

timedelta类的实例,支持加、减、乘、除等操作,所得的结果也是timedelta类的实例。比如:

year = timedelta(days=365)
ten_years = year *10
nine_years = ten_years - year

同时,date、time和datetime类也支持与timedelta的加、减运算。

datetime1 = datetime2 +/- timedelta
timedelta = datetime1 - datetime2这样,可以很方便的实现一些功能。

1. 两个日期相差多少天。

d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days

输出:3

2. 今天的n天后的日期。

now = datetime.datetime.now()
delta = datetime.timedelta(days=3)
n_days = now + delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')

输出:2012-12-25 17:44:50

time或datetime库

import time
>>> s="2006-1-2"
>>> time.strptime(s,"%Y-%m-%d)
这是将字符串格式的日期及时间转成日期对象
转义符对应意义如下
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%j 年内的一天(001-366)
%m 月份(01-12)
%M 分钟数(00=59)
%p 本地A.M.或P.M.的等价符
%S 秒(00-59)
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%Z 当前时区的名称
%% %号本身

时间: 2024-09-24 07:11:55

Python日期操作入门教程详解的相关文章

Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)_javascript技巧

什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 接下来给大家介绍vuejs单向绑定.双向绑定.列表渲染.响应函数基础知识,具体详情如下所示: (一)单向绑定 <div id="app"> {{ message }} </div> <sc

yaml在python上的使用教程详解

YAML是一种容易人类阅读.适合表示程序语言的数据结构.可用于不同程序间交换数据.支持泛型工具.支持串行处理.丰富的表达能力和可扩展性.易于使用的语言.YAML利用缩进或者是explicit indicatior(如{})来表示属性的嵌套,更为直观和simple. 一.YAML的格式 YAML的格式及特点如下: YAML使用可打印的Unicode字元,可使用UTF-8或UTF-16.使用空白字元为文件缩排来表示结构:不过不能使用跳格字元(TAB).注解由井字号( # )开始,可以出现在一行中的任

php CURL函数入门教程详解

cURL简介 cURL是一个利用URL语法规定来传输数据和文件的工具,支持很多种协议如HTTP.FTP.TELNET等.PHP也支持 cURL 库. 假如我们要获取某个网页的内容,我们可能会使用下面这几种方法:  代码如下 复制代码 <?php // 把整个文件读入一个字符串中 $str = file_get_contents("http://www.111cn.net"); // 把整个文件读入一个数组中 $arr = file("http://www.111cn.n

ms sql server中存储过程入门教程详解

一.存储过程的概念 T-SQl和C语言一样 ,是一门结构化的语言. 什么是存储过程? 存储过程是SQL查询语句与控制流程语句的预编译集合,并以特定的名称保存在数据库中.存储过程也是数据库对象 分类: 系统存储过程: 以sp_或xp_打头 用户自定义  :以proc_打头 存储过程的优点: 执行速度快 效率高 模块式编程  减少网络流量     提高安全性 二.系统存储过程 SQl server 的系统存储过程保存在master数据库中,且所有命名的系统存储过程命名以"Sp_"开头.在m

Node.js+Express配置入门教程详解_node.js

Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V8引 擎执行Javascript的速度非常快,性能非常好.Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好.Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型

php数组定义入门教程详解

PHP数组是一个重要的概念,它包含有大量的函数,方便人们的开发-现将它的数组分类,以方便查询及应 用. 先说说PHP数组的定义-PHP数组包含两个项,key和value,可以通过key来获取相应的value,其中key又可 以是数值和关联的,如$array[0],$array[one]- 创建数组 PHP中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等,如 $array[0] = 1,$array = array(1,2,3); 一维数组,只包括三个值,属于数值

WPS文档隐藏文字操作教程详解

1.打开WPS文字程序,先随便输入一段文字,然后选中要隐藏的文字. 2.点击wps文字下拉键--格式--字体 文档隐藏文字操作教程详解-wps文档工具栏隐藏"> 3.在字体中勾"选隐藏文字" 4.然后就可以看到之前选定的文字隐藏起来了

PHP字符串操作入门教程

教程|入门教程|字符串 无论哪种语言,字符串操作都是一个重要的基础,往往是简单而重要.正像人说话一样,一般有形体(图形界面),有语言(print 字符串?),显然字符串能解释更多的东西.PHP提供了大量的字符串操作函数,功能强大,使用也比较简单,详细请参看 http://cn2.php.net/manual/zh/ref.strings.php . 以下将简单的讲述它的功能和特性. 弱类型 PHP是弱类型语言,所以其它类型的数据一般可以直接应用于字符串操作函数里,而自动转换成字符串类型,进行处理

PHP 字符串操作入门教程

教程|入门教程|字符串 无论哪种语言,字符串操作都是一个重要的基础,往往是简单而重要.正像人说话一样,一般有形体(图形界面),有语言(print 字符串?),显然字符串能解释更多的东西.PHP提供了大量的字符串操作函数,功能强大,使用也比较简单,详细请参看 [url]http://cn2.php.net/manual/zh/ref.strings.php[/url] . 以下将简单的讲述它的功能和特性.  弱类型PHP是弱类型语言,所以其它类型的数据一般可以直接应用于字符串操作函数里,而自动转换