绝对秒数转换 python,在Python中,如何将自纪元以来的秒数转换为`datetime`对象?...

time模块可以用epoch以来的秒数初始化:

>>> import time

>>> t1=time.gmtime(1284286794)

>>> t1

time.struct_time(tm_year=2010, tm_mon=9, tm_mday=12, tm_hour=10, tm_min=19,

tm_sec=54, tm_wday=6, tm_yday=255, tm_isdst=0)

是否有一种优雅的方法以同样的方式初始化datetime.datetime对象?

对于相反的操作,请执行以下操作:convert-a-datetime-object-to-seconds

datetime.datetime.fromtimestamp会做,如果你知道时间区,你可以produce相同的输出级与time.gmtime P / < >

>>> datetime.datetime.fromtimestamp(1284286794)

datetime.datetime(2010, 9, 12, 11, 19, 54)

或 P / < >

>>> datetime.datetime.utcfromtimestamp(1284286794)

datetime.datetime(2010, 9, 12, 10, 19, 54)

奇怪的是,datetime.utcfromtimestamp创建了一个简单的时间戳。我不得不使用import pytz和datetime.fromtimestamp(1423524051, pytz.utc)创建一个感知日期时间。

作为上述步骤的后续步骤,如果只需要UTC时间戳,那么使用python>=3.2,您不必导入pytz库—只需要from datetime import datetime, timezone然后按如下方式调用它:datetime.fromtimestamp(1423524051, timezone.utc)。当我只需要pytz中的UTC时区时,它已经保存了很多次额外的库。

由于时代到datetime秒到strftime: P / < >

>>> ts_epoch = 1362301382

>>> ts = datetime.datetime.fromtimestamp(ts_epoch).strftime('%Y-%m-%d %H:%M:%S')

>>> ts

'2013-03-03 01:03:02'

从文档,建议的方式得到的-意识的日期时间对象从秒由于时代: P / < >

Python 3: P / < >

from datetime import datetime, timezone

datetime.fromtimestamp(timestamp, timezone.utc)

Python的2,用pytz: P / < >

from datetime import datetime

import pytz

datetime.fromtimestamp(timestamp, pytz.utc)

在您的副标题("python 3"、"python 2")中提供一个到文档的链接是很有用的,我还建议您更改它们的顺序。

已更新。保留相同的顺序,因为这与python文档匹配。

你不需要pytz来获取utctzinfo对象。你自己创造它很容易

注意,datetime.datetime.fromtimestamp(timestamp)和.utcfromtimestamp(timestamp失败)在Windows dates之前,1月为1。20世纪70年代,而消极的UNIX timestamps似乎工作的C - platforms UNIX为基础的。"文档说: P / < >

"This may raise ValueError, if the timestamp is out of the range of

values supported by the platform C gmtime() function. It’s common for

this to be restricted to years in 1970 through 2038"

看到也issue1646728 P / < >

:o)是的,还需要23年才能修好。

你可以用utc_time = datetime(1970,1,1) + timedelta(seconds=timestamp)来解决这个问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值