【问题标题】:converting datetime string to the correct timezone将日期时间字符串转换为正确的时区
【发布时间】:2017-12-06 20:37:35
【问题描述】:

我已经就该主题进行了一些有用的讨论,但仍然不明白以下内容:

说,我有一个字符串“20080730 06:23:54 PDT”,我想将其转换为时区感知的日期时间对象。我了解,dateutil.parser.parse() 通常不会解析像“PDT”这样的时区,但看起来它确实可以正确解析“UTC”和“EDT”。这些是例外吗? “EDT”是我当地时区的例外吗?

import pytz
from dateutil.parser import parse
sdt="20080730 06:23:54 UTC"
dt_obj = parse(sdt)
dt_obj
datetime.datetime(2008, 7, 30, 6, 23, 54, tzinfo=tzutc())
sdt="20080730 06:23:54 EDT"
dt_obj = parse(sdt)
dt_obj
datetime.datetime(2008, 7, 30, 6, 23, 54, tzinfo=tzlocal())
sdt="20080730 06:23:54 PDT"
dt_obj = parse(sdt)
dt_obj
datetime.datetime(2008, 7, 30, 6, 23, 54)

【问题讨论】:

  • 您不能依赖时区字符串,因为它们在全球范围内并不是唯一的。
  • @MarkRansom 尽管如此,它还是会转换/本地化“EDT”
  • 我不知道为什么 EDT 可以工作,但 PDT 不行。但是,如果您查看timeanddate.com/time/zones 的时区缩写列表,您会发现 PST 可能表示太平洋标准时间,也可能表示皮特凯恩标准时间。
  • 这可能与预定义的方法 tzutc() 和 tzlocal() 有关,但我有兴趣查看更多详细信息
  • 这几乎可以肯定是因为tzlocal 提供了一个缩写。我什至无法让 CSTCDT 为我工作,即使那是我所在的时区。我使用的是 Windows 7,你的操作系统是什么?

标签: python datetime python-dateutil


【解决方案1】:

在类似情况下,我发现东部夏令时间是一个例外:它通常与等效的标准时区名称一起可用/可解析,即使太平洋时间或其他时间并非如此。

【讨论】:

    【解决方案2】:

    作为一名飞行员,我认为您只需要了解有关时区的更多信息。它并不像您想象的那么容易,但也不难。首先工作/转换为 UTC 时间然后继续(也是您)总是更安全必须了解夏令时)。 如果您想对许多输入/输出执行此操作,您将需要一个数据库(互联网)和一些正则表达式(https://docs.python.org/3.6/howto/regex.html)。看看 re-gex lib ,也许还有 selenium 来改进你的程序。
    哦,抱歉,要清除 EDT 代表东部夏令时间(夏季)和 EST 代表东部标准时间(冬季)。E.G.北美观察两者并在领土上划分它们

    已编辑 FROM http://pytz.sourceforge.net/*

    不幸的是,在许多时区使用标准日期时间构造函数的 tzinfo 参数“不起作用”。

    问题和限制

    与 UTC 的偏移量四舍五入到最接近的整分钟,因此 1937 年之前的欧洲/阿姆斯特丹等时区最多会延迟 30 秒。这是 Python 日期时间库的限制。 如果您认为时区定义不正确,我可能无法修复它。 pytz 是 Olson 时区数据库的直接翻译,需要对这个源进行时区定义的更改。如果您发现错误,应将它们报告给时区邮件列表,链接自http://www.iana.org/time-zones

    【讨论】:

    • 抱歉,我看不出它是如何回答我的问题的
    • Python 无法单独完成。您需要创建/查找一个数据库(数据库)。
    • 您看到 PDT 和 EDT 只是指不同的位置(太平洋和东部)。您从此模块获得的所有数据都不是 100% 安全的。
    • 对不起,信息复杂,你总能做出更好的数据库
    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2015-09-17
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多