python3 时间格式的转换
使用的time 标准库
世界上有两种标准时间的格式 一种是UTC 标准时区,另一种的夏令时的标准时区,
中国使用的是UTC+8 的一个时间 。就是北京时间
''' 时间分为 三种格式 1. struct_time格式 time.localtime() 2. 时间戳 time.time() 3. 格式化的时间格式 '''
1. 时间戳
时间戳是什么? 时间戳就是从1970到现在的秒数
>>> time.time()
1517640828.0257125
>>>
2.. struct_time
就是tuple 元组的一种时间格式
>>> time.localtime() time.struct_time(tm_year=2018, tm_mon=2, tm_mday=3, tm_hour=14, tm_min=54, tm_se c=50, tm_wday=5, tm_yday=34, tm_isdst=0)
3、格式化的时间
就是我常见的一种时间的表示形式
例如:2018-02-03 14-36-01
那么首先从时间戳转为 struct_time 的时间
可以用localtime()直接转为struct time 的格式
如下:
>>> time.localtime() time.struct_time(tm_year=2018, tm_mon=2, tm_mday=3, tm_hour=14, tm_min=58, tm_se c=38, tm_wday=5, tm_yday=34, tm_isdst=0)
那么如何转换回来呢?
通过 mktime 转为 时间戳格式
>>> x=time.localtime() >>> time.mktime(x) 1517641148.0 >>>
struct_time 转为格式的时间
通过 strftime 来转换
>>> x=time.localtime() >>> >>> >>> time.strftime("%Y-%m-%d %H:%M:%S",x) '2018-02-03 15:01:32'
那么怎么转换回来呢?
可以用过strptime
>>> x2=time.strftime("%Y-%m-%d %H:%M:%S",x) >>> x2 '2018-02-03 15:01:32' >>> time.strptime(x2,"%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2018, tm_mon=2, tm_mday=3, tm_hour=15, tm_min=1, tm_sec =32, tm_wday=5, tm_yday=34, tm_isdst=-1)