在Python中,如何仅使用datetime包获取本地化的时间戳?

ℕʘʘḆḽḘ

我有一个以秒为单位的unix时间戳(例如1294778181),可以使用转换为UTC

from datetime import datetime
datetime.utcfromtimestamp(unix_timestamp)

问题是,我想获得相应的时间'US/Eastern'(考虑任何DST),但我无法使用pytz和其他实用程序。

仅对datetime我可用。

那可能吗?谢谢!

iScrE4m

最简单但不是超级智能的解决方案是使用timedelta

import datetime
>>> now = datetime.datetime.utcnow()

美国/东部时间比世界标准时间晚5个小时,因此让我们将thouse创建为5小时作为一个timedelta对象并将其设为负数,这样,在回读我们的代码时,我们可以看到偏移量为-5,并且决定何时进行偏移量没有任何魔力。添加和何时减去时区偏移

>>> eastern_offset = -(datetime.timedelta(hours=5))
>>> eastern = now + eastern_offset
>>> now
datetime.datetime(2016, 8, 26, 20, 7, 12, 375841)
>>> eastern
datetime.datetime(2016, 8, 26, 15, 7, 12, 375841)

如果我们想修复DST,则可以像这样通过平滑处理来运行日期时间(并非完全准确,时区不是我的专长(现在仔细检查一下,它每年都在变化,哎呀))

if now.month > 2 and now.month < 12:
    if (now.month == 3 and now.day > 12) or (now.month == 11 and now.day < 5):
        eastern.offset(datetime.timedelta(hours=5))

您甚至可以更详细地讲,增加时间,找出每年变化的确切程度……我将不做所有的事情:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章