在写代码的时候经常会遇到将时间戳转换为日期或者将日期转换为时间戳的清空,首先用到的时间戳(timestamp)和时间字符串之间的转换。所谓时间戳,就是从 1970年1月1日 00:00:00 到现在的秒数。
Python 时间戳转日期
时间戳可以通过 time 模块里的 time() 方法获得,比如:
import time
timestamp = time.time()
print(timestamp)
输出结果:
1640864943.952753
这个数可以这么理解, 小数点前面的是从1970年1月1日 00:00:00 到现在的秒数, 小数点后面是微秒的计数。
这个时间戳不容易记忆和理解, 所以我们希望把它转换成人容易理解的时间格式,时间戳转换为指定格式的日期,常用到的模块是time和datetime。
使用time模块
import time
timeStamp = 1640864943
timeArray = time.localtime(timeStamp)
formatTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print (formatTime)
结果:
2021-12-30 19:49:03
使用datetime模块
import datetime
timeStamp = 1640864943
timeArray = datetime.datetime.utcfromtimestamp(timeStamp)
formatTime = timeArray.strftime("%Y-%m-%d %H:%M:%S")
print (formatTime)
结果:
2021-12-30 19:49:03
得到的结果是完全一样的, 这里time和datetime都可以把时间戳转换为指定时间格式, 但是他们俩还是有区别的, 总体来讲time比datetime更偏底层。
Python 日期转时间戳
import time
st = time.strptime('2021-12-30 19:49:03', '%Y-%m-%d %H:%M:%S')
time.mktime(st)
结果:
1640864943.0