最近码代码期间,被时间格式的转换搞得用点儿懵,其实主要是还对于常用的几种时间格式之间的转换有点儿不熟悉。常用的几种时间主要有:
1.时间戳
2.struct_time类型的时间
3.datetime时间格式
4.格式化时间字符串
接下来我将每种格式的时间格式主要涉及到的函数用法进行剖析
一. 时间戳
时间戳作为一种float、int类型存在的对象,获取时间戳最简单的方式,时间模块time.time()函数,获取当前的时间戳,而后我们可以用获取的时间戳再进行各种转换。
1.1 时间戳转stuct_time类型的时间:time.gmtime(时间戳)
>>> now_ts = time.gmtime(time.time())
>>> now_ts
time.struct_time(tm_year=2018, tm_mon=5, tm_mday=6, tm_hour=8, tm_min=13, tm_sec=26, tm_wday=6, tm_yday=126, tm_isdst=0)
1.2 时间戳转换成datetime格式的时间:用datetime模块的datetime.fromtimestamp
>>> from datetime import datetime
>>> datetime.fromtimestamp(time.time())
datetime.datetime(2018, 5, 6, 17, 58, 36, 644783)
二. struct_time类型的时间
2.1 stuct_time类型的时间转时间戳:time.mktime(stuct_time类型的时间)
>>> date_to_ts = time.mktime(time.localtime())
>>> date_to_ts
1525594605.0
三 格式化时间字符串
3.1 将时间格式输出字符串:时间格式时间.strftime('%Y-%m-%d %H:%M%S')
>>> datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2018-05-06 18:38:02'
四 datetime格式时间
4.1 输出当前时间:datetime.now()
4.2 将字符串格式时间转换成datetime格式时间:datetime.strptime(time_str, '%Y-%m-%d %H:%M%S')
4.3 按指定时间输出
>>> datetime(2018,5,6,00,00,00)
datetime.datetime(2018, 5, 6, 0, 0)