Python 时间日期

(0 comments)

datetime 类

datetime 是基本的时间日期类,包括 date 和 datetime 对象。例如,查询当前的日期和时间:

>>> datetime.date.today()
datetime.date(2006, 3, 21)

>>> datetime.datetime.today()
datetime.datetime(2006, 3, 21, 16, 16, 8, 284853)

today() 函数返回值是 date 或 datetime 对象,可以查看year, month, day 和 hour, minute, second 等属性,例如:

>>> datetime.date.today().day
21

>>> datetime.datetime.today().hour
16

weekday(), ctime() 等函数还可以得到特殊要求的输出,例如:

>>> datetime.datetime.today().weekday()
1

>>> datetime.datetime.today().ctime()
'Tue Mar 21 16:39:31 2006'

格式化输出

strftime() 函数支持 datetime 类的 date, datetime 和 time 对象,它可以将时间日期以指定格式输出,例如:

>>> datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')
'2006-03-21 16:42:34'

查看所有格式化字符:http://www.python.org/doc/2.4/lib/module-time.html

time 类也支持 strftime() 函数,例如:

>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2006-03-21 16:42:34'

日期比较

datetime 的 datetime 和 time 对象可以直接运算,例如:

>>> d1 = datetime.date.today()
>>> d2 = datetime.date(2005, 2, 16)
>>> (d1 - d2).days
398

>>> d1 = datetime.datetime.today()
>>> d2 = datetime.datetime(2005, 2, 16)
>>> (d1 - d2).seconds
60735

date/datetime 对象可以与 timedelta 对象相互加减运算。两个日期相减后的结果是 timedelta 对象,可以查看 days 或 seconds 属性,例如:

>>> start = datetime.datetime.now()
>>> end = datetime.datetime.now()
>>> print (end - start).seconds
5

不带参数的 now() 函数和 today() 函数功能是一样的。给 timedelta 赋值后,可以与 date/datetime 对象进行运算,运算后的结果是 date/datetime 类型。例如,计算当前日期前/后三十一天的时间:

>>> datetime.date.today() - datetime.timedelta(31)
datetime.date(2006, 2, 18)
>>> datetime.date.today() + datetime.timedelta(31)
datetime.date(2006, 4, 21)

给 timedelta 赋值时默认值为天数,也可以指定 weeks, hours, minutes 等参数,例如:

>>> d1 = datetime.datetime.now()
>>> d2 = d1 + datetime.timedelta(hours=10)
>>> d2.ctime()
'Sat Aug 20 16:58:50 2005'
Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required