1.前言
在Python中,对时间的表示或操作通常要使用到time
模块。本篇博文就来记录一下time
模块中常用的几种时间表示转换方法。
2. 三种时间表示形式
2.1 时间戳
从1970年1月1日零点零时零分零秒到当前时间所经过的秒数称为当前时间的时间戳。使用time
模块下的time()
方法即可返回当前时间的时间戳。
# 时间戳
timestamp = time.time()
print(timestamp)
# 输出
1539310424.426869
2.2 结构化时间
结构化时间指包含了年、月、日、时、分、秒等时间属性的一个时间对象,使用这个时间对象通过点的方式可以获取各个时间属性。在time
模块中,localtime()
可以获取当前时区当前时间的结构化时间,另外,gmtime()
可以获取世界时间当前时间的结构化时间,其功能与localtime()
完全相同,此处只以localtime()
为例说明。
# 结构化时间
struct_time = time.localtime()
print(struct_time)
# 输出time.struct_time(tm_year=2018,
# tm_mon=10,
# tm_mday=12,
# tm_hour=10,
# tm_min=25,
# tm_sec=11,
# tm_wday=4,
# tm_yday=285,
# tm_isdst=0)
print(struct_time.tm_year) # 输出 2018
print(struct_time.tm_mon) # 输出 10
print(struct_time.tm_mday) # 输出 12
print(struct_time.tm_hour) # 输出 10
print(struct_time.tm_min) # 输出 25
print(struct_time.tm_sec) # 输出 11
print(struct_time.tm_wday) # 输出 4
print(struct_time.tm_yday) # 输出 285
print(struct_time.tm_isdst) # 输出 0
其中:
- tm_year:表示年份
- tm_mon:表示月份
- tm_mday:表示日期
- tm_hour:表示小时
- tm_min:表示分钟
- tm_sec:表示秒数
- tm_wday:表示星期。注:0表示星期一,6表示星期日
- tm_yday:表示当前日期是当前年份的第几天
- tm_isdst:表示夏令时
2.3 格式化的时间字符串
格式化的时间字符串就是我们根据业务的需要,将结构化时间或时间戳转换成我们需要的格式的时间表示字符串,例如:'2018-10-12 12:00:00'
3.相互转换
以上三种时间格式的相互转换,我们只需记住下面两张图即可。
import time
# 结构化时间
struct_time = time.localtime()
print(struct_time)
# 时间戳
timestamp = time.time()
print(timestamp)
# 1.时间戳 ————> 结构化时间
print(time.localtime(timestamp))
# 2.结构化时间 ————> 时间戳
print(time.mktime(struct_time))
# 3.结构化时间 ————> 字符串格式化时间
print(time.strftime('%Y-%m-%d %X', struct_time))
# 4.字符串格式化时间 ————> 结构化时间
print(time.strptime('2018-10-10 18:00:00', '%Y-%m-%d %X'))
# 5.结构化时间 ————> 字符串格式化时间(以系统内置格式转化)
print(time.asctime(struct_time))
# 6.时间戳 ————> 字符串格式化时间(以系统内置格式转化)
print(time.ctime(timestamp))
(完)