python ---datatime序列
datetime模块介绍
| 类名 | 功能说明 |
|---|---|
| date | 日期对象,常用的属性有year, month, day |
| time | 时间对象 |
| datetime | 日期时间对象,常用的属性有hour, minute, second, microsecond |
| datetime_CAPI | 日期时间对象C语言接口 |
| timedelta | 时间间隔,即两个时间点之间的长度 |
| tzinfo | 时区信息对象 |
一 . date类
from datetime import date
#返回当前日期
print(date.today()) 输出:2021-11-25
a=date(2021,11,15)#a.year,a.month,a.day分别为:2021,11,15
#转化为时间元组输出
a.timetuple()输出为:time.struct_time(tm_year=2021, tm_mon=11, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=81, tm_isdst=-1)
print(date(2021,11,15)) 输出:2021-11-15
#传入时间戳参数,返回date对象
date.fromtimestamp(time.time()) #输出结果为:2021-11-25
#字符串的格式化输出
a = date.today() #date对象
print(a.__format__('%Y-%m-%d')) 由date对象转化为格式化字符串输出
输出结果:2021-11-26
或者:
a.strftime("%Y-%m-%d")
输出结果:2021-11-26
二 . time类
time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) #time类由hour小时、minute分钟、second秒、microsecond毫秒和tzinfo五部分组成
a = datetime.time(12,20,59,899) print(a.hour) #12 print(a.minute) #20 print(a.second) #59 print(a.microsecond)#899
1.比较时间大小
>>> a = datetime.time(12,20,59,899) >>> b = datetime.time(11,20,59,889) >>> a.__eq__(b) 是否相等 False >>> a.__ne__(b) 是否不相等 True >>> a.__ge__(b) a是否大于等于b True >>> a.__gt__(b) a是否大于b True >>> a.__le__(b) a是否小于等于b False >>> a.__lt__(b) a是否小于b False
2.时间的字符串输出
import datetime
a = datetime.time(12,20,59,899)
a.__format__('%H:%M:%S') #输出:'12:20:59'
或者
a.strftime('%H:%M:%S') #输出:'12:20:59'
三 . datetime类
datetime类的数据构成
datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
import datetime
a = datetime.datetime.now()
print(a) #输出:2021-11-26 00:47:03.811068
print(a.date()) #输出:2021-11-26
print(a.time()) #输出:00:47:52.615274
#联合date和time重新获得一个新的datetime
print(datetime.datetime.combine(a.date(),a.time()))
根据string和format返回一个新的datetime对象
datetime.datetime.strptime(string, format)#返回一个对应的datetime对象
datetime.datetime.strptime('2017-3-22 15:25','%Y-%m-%d %H:%M')
四 . timedelta类
timedelta类是用来计算二个datetime对象的差值的。
此类中包含如下属性: days:天数 , microseconds:微秒数(>=0 并且 <1秒) seconds:秒数(>=0 并且 <1天)
import datetime
today = datetime.date.today()
#获取上个月第一天
mfirst_day = datetime.date(mlast_day.year, mlast_day.month, 1)
#获取上个月最后一天
mlast_day = datetime.date(today.year, today.month, 1) - datetime.timedelta(1)
2 . 获取时间差
import datetime start_time = datetime.datetime.now()
end_time = datetime.datetime.now()
print((end_time - start_time).seconds)
输出结果为:7
3 . 计算当前时间向后8个小时的时间
import datetime d1 = datetime.datetime.now() d2 = d1 + datetime.timedelta(hours = 8) #d2为d1向后8小时的时间对象
可以计算: 天(days), 小时(hours), 分钟(minutes), 秒(seconds), 微秒(microseconds).

浙公网安备 33010602011771号