(一)通用:time包
1、日期字符串 => 时间戳int
import time
# 将时间字符串转为时间戳int
dt = "2016-05-05 20:28:54"
# 转换成时间数组
timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S")
# 转换成时间戳
timestamp = time.mktime(timeArray)
print(timeArray)
print("时间戳-timestamp: %s" % timestamp)
2、时间戳 => 日期字符串
(1)精确到秒s
import time
# 将时间戳int转为时间字符串
timestamp = 1462451334
# 转换成localtime
time_local = time.localtime(timestamp)
# 转换成新的时间格式(2016-05-05 20:28:54)
dt = time.strftime("%Y-%m-%d %H:%M:%S", time_local)
print(dt)
print("日期字符-dt: %s" % dt)
(2)精确到毫秒ms
import time
ct = time.time()
# ct = 1536994867.9991837
print(ct)
print(int(ct))
local_time = time.localtime(ct)
data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
data_secs = (ct - int(ct)) * 1000
dt_ms = "%s.%03d" % (data_head, data_secs)
print(dt_ms)
封装好的函数
def timestamp2datems(timestamp):
'''
时间戳转为日期字串,精确到ms。单位s
:param timestamp:时间戳
:return:日期字串
'''
local_time = time.localtime(timestamp)
data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
data_secs = (timestamp - int(timestamp)) * 1000
dt_ms = "%s.%03d" % (data_head, data_secs)
# print(dt_ms)
return dt_ms
3、获取当前时间的时间戳
time.time()
(二)其他:datetime包
1. 日期输出格式化 datetime => string
import datetime
now = datetime.datetime.now()
now.strftime('%Y-%m-%d %H:%M:%S')
strftime是datetime类的实例方法(即为实例方法)。
2. 日期输出格式化 string => datetime
import datetime
t_str = '2015-04-07 19:11:21'
d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
strptime是datetime类的静态方法。
3.任意格式时间字符串转成时间戳
import datetime
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
TIME = 'Thu, 19 Feb 2009 16:00:07 GMT'
timestamp = datetime.datetime.strptime(TIME, GMT_FORMAT)
print(timestamp)