4.2.2 日期
日历日期值用date类表示,date实例包含year,month和day属性。使用today()类方法很容易创建一个表示当前日期的日期实例。
import datetime
today = datetime.date.today()
print(today)
print('ctime :',today.ctime())
tt = today.timetuple()
print('tuple :tm_year =',tt.tm_year)
print(' tm_mon =',tt.tm_mon)
print(' tm_mday =',tt.tm_mday)
print(' tm_hour =',tt.tm_hour)
print(' tm_min =',tt.tm_min)
print(' tm_sec =',tt.tm_sec)
print(' tm_wday =',tt.tm_wday)
print(' tm_yday =',tt.tm_yday)
print(' tm_isdst =',tt.tm_isdst)
print('ordinal:',today.toordinal())
print('Year :',today.year)
print('Mon :',today.month)
print('Day :',today.day)
下面这个例子采用多种不同格式来打印当前日期。
运行结果:
还有一些类方法可以由POSIX时间戳或Gregorian日历中表示日期值的整数(第1年的1月1日对应的值为1,以后每天对应的值逐个加1)来创建date实例。
import datetime
import time
o = 737114
print('o :',o)
print('fromordinal(o) :',datetime.date.fromordinal(o))
t = time.time()
print('t :',t)
print('fromtimestamp(t):',datetime.date.fromtimestamp(t))
这个例子表明fromordinal()和fromtimestamp()使用了不同的值类型。
运行结果:
与time类类似,可以使用min和max属性确定所支持的日期值范围。
import datetime
print('Earliest :',datetime.date.min)
print('Latest :',datetime.date.max)
print('Resolution:',datetime.date.resolution)
日期的分辨率为整天。
运行结果:
创建新的date实例还有一种方法,可以使用现有日期的replace()方法来创建。
import datetime
d1 = datetime.date(2008,3,29)
print('d1:',d1.ctime())
d2 = d1.replace(year=2009)
print('d2:',d2.ctime())
下面这个例子会改变年,但日和月保持不变。
运行结果: