本文简要介绍datetime,time模块的简要用法。
datetime模块
datetime模块主要有四个主要的对象。
date 处理年、月、日
time处理时、分、秒、微秒
datetime处理日期和时间同时出现的情况
timedelta处理日期或时间间隔
下面给出实例,我们指定年月日,创建一个date对象,之后这些值会变成对象的属性。
from datetime import date
data = date(2020, 5, 18)
print(data)
print(data.day)
print(data.month)
print(data.isoformat()) #调用此方法也可直接打印date对象
然后iso是指ISO 8601,一种日期和时间的国际标准,它可以对日期进行正确的排序,年月日。
from datetime import date
from datetime import timedelta
now = date.today()
print(now)
someday = timedelta(days=1)
tomorrow = now + someday
print(tomorrow)
#此模块也可以进行简单的运算
yesterday = now - someday
不过date是有计算范围的,date.min(1,1,1)到date.max(9999,12,31),因此,不能用它进行天文或历史相关的计算。
然后我们可以用time()模块中的对象去表示一天内的时间,相对于上面只是改变了一下参数,用法相同,分别为hour,minute,second,microsecond,不设定初始值,默认为零。但是微秒并不一定就能计算机取出准确的数值,和计算机本身的性能有关。
from datetime import date, time, datetime
noon = time(12)
today = date.today()
noon_today = datetime.combine(today, noon)
print(noon_today) #使用combine将date和time对象合并为datetime
#我们也可以用date()和time()方法从datetime中提取这两个部分
noon_today.date()
noon_today.time()
time模块
上面介绍的datetime模块中有个对象叫做time,其次,python中还有一个单独的time模块,我们下面介绍它。
一种表示绝对时间的方法是计算从某个起始点开始的秒数。Unix使用的是从1970年1月1日开始的秒数,这个数值通常称之为纪元,它是不同系统间交换日期时间的最好方法。
import time
print(time.time())#输出从纪元开始过去的秒数
#我们也可以把一个计算值转换成一个字符串
print(time.ctime(now))
其实time模块中如果忽略localtime()或是gmtime()的参数,会默认返回当前的时间。