如何将时间戳字符串转换为日期时间对象?
可能是重复的问题:
在Python中将Unix时间戳字符串转换为可读日期
我有一个时间戳:
t = 1322745926.123
怎么把这个时间戳转换成日期时间对象呢?
datetime.strptime(t,date_format)
在上面的函数调用中,date_format
应该是什么呢?
3 个回答
2
用这个,
datetime.datetime.fromtimestamp(t)
3
datetime.datetime.utcfromtimestamp(1322745926.123)
返回的是 datetime.datetime(2011, 12, 1, 13, 25, 26, 123000)
这个时间,它是以UTC时区表示的。通过:
a = pytz.utc.localize(datetime.datetime.utcfromtimestamp(1322745926.123))
你可以得到一个带时区的日期时间对象,这个对象可以转换成你需要的任何时区:
a == datetime.datetime(2011, 12, 1, 13, 25, 26, 123000, tzinfo=<UTC>)
a.astimezone(pytz.timezone('Europe/Paris'))
# datetime.datetime(2011, 12, 1, 14, 25, 26, 123000, tzinfo=<DstTzInfo 'Europe/Paris' CET+1:00:00 STD>)
10
datetime.strptime() 这个函数不适合你的问题。它的作用是把像 "30 Nov 00" 这样的字符串转换成一个时间结构对象。
你可能想要的是
from datetime import datetime
t = 1322745926.123
datetime.fromtimestamp(t).isoformat()
这段代码的结果是
'2011-12-01T14:25:26.123000'
如果你的时间代码是一个字符串,你可以这样做:
from datetime import datetime
t = "1322745926.123"
datetime.fromtimestamp(float(t)).isoformat()