如何将时间戳字符串转换为日期时间对象?

5 投票
3 回答
18825 浏览
提问于 2025-04-17 07:48

可能是重复的问题:
在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()

撰写回答