目录
time
import time
为什么要有time模块,time模块有什么用
- 打印时间,还可以打印三种格式的时间(虽然并没有什么卵用),需要时间的地方就可以调用,还有暂停程序进行的功能
方法名 | 作用 |
---|---|
sleep() 重要 | 睡眠 |
time() | 时间戳 |
strftime() | 格式化时间 |
localtime 重要 | 结构化时间 |
时间戳形式
print(time.time()) # python中是从1970年开始计算过去了多少秒
1560155784.7340243
格式化时间
- 其中的格式需要自己定义
- 可以自己选择合适的格式,便于进行处理
print(time.strftime('%Y-%m-%d %X'))
2019-06-10 16:37:53
结构化时间
- 以某个地区的时间为准
print(time.localtime()) # 北京时间
print(time.gmtime()) # 格林威治时间,第一台计算机,和北京时差为8h
print(time.gmtime(0)) # 打印1970年的时间
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=16, tm_min=40, tm_sec=11, tm_wday=0, tm_yday=161, tm_isdst=0)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=8, tm_min=40, tm_sec=11, tm_wday=0, tm_yday=161, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
各种时间格式互相转换
- 结构化时间转换为格式化时间
struct_time = time.localtime()
print(time.strftime('%Y-%m-%d', struct_time))
2019-06-10
- 结构化时间转化为时间戳
print(time.mktime(struct_time))
1560156103.0
- 格式化时间转化为结构化时间
format_time = time.strftime('%Y:%m:%d')
print(time.strptime(format_time, '%Y:%m:%d'))
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=161, tm_isdst=-1)
- 时间戳转化为结构化时间
stamp_time = time.time()
print(time.localtime(stamp_time))
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=10, tm_hour=16, tm_min=48, tm_sec=42, tm_wday=0, tm_yday=161, tm_isdst=0)
- 睡眠(重要)
time.sleep(2)
datetime
import datetime
为什么要有datetime模块,detatime模块有什么用
- 时间的加减
- 这个方法可以替代上面的time模块,因为time模块的三种模式,只有一种用的到,就是datetime的这种
datetime.now() 重要
- 获取时间
- 固定格式,可以用split把后面的时间进行切割处理
now = datetime.datetime.now()
print(now)
new = str(now).split()[0]
print(new)
2019-06-10 18:44:13.910789
2019-06-10
时间的计算
- 默认加days,最高也只能是加days
- 记住加s
print(now + datetime.timedelta(5))
print(now + datetime.timedelta(hours=3))
print(now + datetime.timedelta(minutes=30))
2019-06-15 18:44:13.910789
2019-06-10 21:44:13.910789
2019-06-10 19:14:13.910789
替换时间
print(now.replace(year=2017, month=6, day=4, hour=10, minute=0, second=0))
2017-06-04 10:00:00.910789