Python——time模块

time

与时间相关的一个模块

更多了解:http://www.runoob.com/python3/python3-date-time.html


时间的三类

时间戳

时间戳是指从 1970年1月1日 0:0:0 开始到现在的秒数,但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。(不知道有没有更新过)

1
2
3
4
5
6
7
8
>>> import time
>>> time.time()
1539595862.1039639
>>> time1 = time.time()
>>> time.sleep(10)
>>> time2 = time.time()
>>> time2 - time1
10.00250792503357
结构化时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> time.localtime()
# 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组。
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=15, tm_hour=18, tm_min=43, tm_sec=5, tm_wday=0, tm_yday=288, tm_isdst=0)
# tm_year 年
# tm_mon 月
# tm_mday 日
# tm_hour 小时
# tm_min 分钟
# tm_sec 0 到 61 (60或61 是闰秒)
# tm_wday 0到6 (0是周一)
# tm_yday 一年中的第几天
# tm_isdst 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的时候, tm_isdst为0;不了解情况时,tm_isdst()为负。

# 单独取值
>>> time.localtime().tm_year
2018
>>> time.localtime().tm_mon
10
>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=15, tm_hour=10, tm_min=58, tm_sec=45, tm_wday=0, tm_yday=288, tm_isdst=0)
# gmtime() 函数将一个时间戳转换为UTC时区(0时区)的struct_time,可选的参数sec表示从1970年1月1日以来的秒数。其默认值为time.time(),函数返回time.struct_time类型的对象。
格式化字符串时间
1
2
3
4
5
>>> time.strftime('%Y-%m-%d %H:%M:%S %p') # 注意大小写不然会报语法错误
'2018-10-15 19:01:40 PM'

>>>time.strftime('%Y-%m-%d %X %p')
'2018-10-15 19:02:11 PM'
三种格式之间的相互转换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 时间戳转为结构化
>>> time.localtime(time.time())
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=15, tm_hour=19, tm_min=4, tm_sec=25, tm_wday=0, tm_yday=288, tm_isdst=0)

# 结构化转字符串
>>> time.strftime('%Y-%m-%d',time.localtime(time.time()))
'2018-10-15'

# 字符串转为结构化
>>> time.strptime('2018-10-15','%Y-%m-%d')
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=288, tm_isdst=-1)

# 结构化转时间戳
>>> time.mktime(time.strptime('2018-10-15','%Y-%m-%d'))
1539532800.0
格林威治时间
1
2
3
>>> time.altzone 
# 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
-28800 # 暂时我也不知道有啥用
time.ctime([secs])
1
2
>>> time.ctime() # 偏外国友人使用的时间格式
'Mon Oct 15 19:12:30 2018'