time模块
时间戳:
- time.time():返回的是float类型,从1970年1月1日00:00:00开始到当前时间按秒计算的偏移量
import time
print(time.time())
结构化时间:struct_time(tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)
- tm_year:年
- tm_mon:月
- tm_mday:日
- tm_hour:时
- tm_min:分
- tm_sec:秒
- tm_wday:表示周几,值为0-6,0表示周一
- tm_yday:表示是一年中的第几天,1-366
- tm_isdst:是否是夏令时,默认为0
- 时间是正常时区的时候取0
- 时间是在夏令时时区取1
- 不清楚的时候取-1
时间戳和结构化时间转换
时间戳–>结构化:localtime()/gmtime()
- localtime():转换成当地时间,北京时间比UTC快8个小时
- gmtime():转换成英国伦敦UTC时间
t = time.time()
struc_time = time.localtime(t)
print(struc_time)
print(struc_time.tm_year, struc_time.tm_mon)
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=19, tm_hour=20, tm_min=25, tm_sec=41, tm_wday=2, tm_yday=50, tm_isdst=0)
2020 2
结构化–>时间戳:mktime()
struc_time = time.localtime(1600000000)
print(time.mktime(struc_time))
格式化的时间字符串
常见的格式化:
| 符号 | 说明 |
|---|
| %y | 两位数的年份表示(00 - 99) |
| %Y | 四位数的年份表示(000 - 9999) |
| %m | 月份(01 - 12) |
| %d | 月内中的一天(0 - 31) |
| %H | 24小时制小时数(0 - 23) |
| %I | 12小时制小时数(01 - 12) |
| %M | 分钟(00 - 59) |
| %S | 秒(00-59) |
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.strftime("%y/%m/%d %H:%M:%S"))
print(time.strftime("%m-%d %H:%M:%S"))
print(time.strftime("%I:%M:%S"))
其他的格式符
| 符号 | 说明 |
|---|
| %a | 简化的星期名称 |
| %A | 完整的星期名称 |
| %b | 简化的月份名称 |
| %B | 完整的月份名称 |
print(time.strftime("%a %H:%M:%S"))
print(time.strftime("%A %I:%M:%S"))
print(time.strftime("%b"))
print(time.strftime("%B"))
| 符号 | 说明 |
|---|
| %j | 一年内的第几天(001-366) |
| %w | 星期(0-6),星期天为0 |
| %p | AM或PM的等价符 |
| %c | 日期和时间的表示,格式是%a %b %d %H:%M:%S %Y |
| %x | 相应的日期表示,格式是%m/%d/%y |
| %X | 相应的时间表示,格式是%H:%M:%S |
print(time.strftime("%x"))
print(time.strftime("%X"))
print(time.strftime("%c"))
格式化时间和结构化时间的转换
格式化–>结构化:strptime(string, format)
print(time.strptime("2020-02-19", "%Y-%m-%d"))
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=19, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=50, tm_isdst=-1)
结构化–>格式化:strftime(format, tuple)
print(time.strftime('%Y-%m-%d',time.localtime(1600000000)))
时间戳——>%c形式的时间:ctime(string)
print(time.ctime())
结构化时间——>%c形式的时间:asctime(tuple)
print(time.asctime(time.localtime(1600000000)))