time模块以及datetime模块
内容概要
- time模块
**timestamp时间戳
**struct_time结构化时间
**format time格式化时间 - datetime模块
**date
**time
**datetime
**timedelta
内容详细
一、time模块
"""
时间三种表现形式
1.时间戳(秒数)
2.结构化时间(一般是给机器看的)
3.格式化时间(一般是给人看的)
三种时间是可以相互转换的!!!
"""
1、时间戳(timestamp)
时间戳表示的是从1970年1月1日00:00:00开始按秒计算到目前的偏移量,
也就是计算从1970年到现在所过去的秒数
print(time.time()) # 1637839983.8243246
# 时间戳转换成结构化时间
time.localtime()
print(time.localtime(time.time()))
# time.struct_time(tm_year=2021, tm_mon=11, tm_mday=25, tm_hour=19, tm_min=36, tm_sec=33, tm_wday=3, tm_yday=329, tm_isdst=0)
2、结构化时间(struct_time)
共有九个元素组:
tm_year(年) 比如2011
tm_mon(月) 1 - 12
tm_mday(日) 1 - 31
tm_hour(时) 0 - 23
tm_min(分) 0 - 59
tm_sec(秒) 0 - 61
tm_wday(weekday) 0 - 6(0表示周日)
tm_yday(一年中的第几天) 1 - 366
tm_isdst(是否是夏令时) 默认为-1
print(time.localtime())
# time.struct_time(tm_year=2021, tm_mon=11, tm_mday=25, tm_hour=19, tm_min=40, tm_sec=1, tm_wday=3, tm_yday=329, tm_isdst=0)
结构化时间转成时间戳:
struct_times = time.localtime()
timestamps_ = time.mktime(struct_times)
print(timestamps_) # 1637840676.0
3、格式化时间
已格式化的结构使时间更具可读性。包括自定义格式和固定格式
print(time.strftime('%Y-%m-%d')) # 2021-11-25
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2021-11-25 19:56:25
print(time.strftime('%Y-%m-%d %X')) # 2021-11-25 19:56:25
二、datetime模块
1、date
print(datetime.date.today()) # 2021-11-25
# 区别 datetime类
print(datetime.datetime.today()) # 2021-11-25 20:12:45.749087
2、datetime
"""date年月日 datetime年月日时分秒 time时分秒(MySQL django后期可以)"""
# res = datetime.datetime.today()
# print(res.year) # 2021
# print(res.month) # 11
# print(res.day) # 25
# print(res.weekday()) # 获取星期(weekday星期是0-6) 0表示周一
# print(res.isoweekday()) # 获取星期(weekday星期是1-7) 1表示周一
3、timedelta(时间差)
ctime = datetime.datetime.today()
time_tel = datetime.timedelta(days=3)
print(ctime) # 2021-11-25 20:16:09.128001
print(ctime - time_tel) # 2021-11-22 20:16:09.128001
print(ctime + time_tel) # 2021-11-28 20:16:09.128001
train
# 小练习 计算举例今年过生日还有多少天
birthday = datetime.date(1999, 7, 22)
now_date = datetime.date.today()
days = birthday - now_date
print('距离生日还有{}天'.format(days)) # 距离生日还有-8162 days, 0:00:00天
# UTC时间与我们的东八区时间差 八个小时
print(datetime.datetime.now()) # 2021-11-25 20:18:55.363573
print(datetime.datetime.utcnow()) # 2021-11-25 12:18:55.363573