【问题标题】:User specified date time用户指定的日期时间
【发布时间】:2011-04-11 05:00:40
【问题描述】:

我需要从用户输入中解析日期/时间字符串,并根据datetime.strptime() 的字符串中不可用的 timzeone 信息转换为 UTC(有什么建议吗?)。有没有一种简单的方法可以做到这一点?

理想情况下,在谷歌应用引擎上,如果可能的话,我还想从浏览器中获取带有 tzinfo 的本地时间。

timezone_string = "GMT-0800"
fields = ("eventstartmonth","eventstartday", "eventstartyear", "eventstarttimehour", "eventstarttimeampm") 
date_string = '_'.join(map(lambda x: self.request.get(x), fields))
# date_string = "01_11_2000_1:35_PM"

dt = datetime.datetime.strptime(date_string, "%m_%d_%Y_%I:%M_%p")
# how to convert dt into a tz-aware datetime, and then to UTC 

【问题讨论】:

  • 关闭,这有一些相关信息(谢谢),但不完全。我可以在 tzinfo 策略中使用更多的“牵手”
  • 令我困惑的是,python 没有可靠的时区处理实现
  • 在我看来,您对问题的看法有点过分了。如果您可以获得与 GMT 的适当偏移量,则无需担心时区。您在示例中提供的timezone_string 包含此偏移量作为数字,您所要做的就是从中创建一个timedeltastackoverflow.com/questions/4044863/…

标签: python google-app-engine python-datetime


【解决方案1】:

在搜索类似信息时,我遇到了demo app engine app(包含源代码),它演示了如何以与您所要求的方式相似的方式转换时区。但是,不幸的是,您需要为要转换的每个时区创建自定义 tzinfo 类(上面链接的演示应用程序中的说明/代码)。

如果您需要能够处理任何时区和/或想要采取简单的路线,我建议您使用pytz 模块。但是,请记住,pytz 是一个相当庞大的模块,您必须将其上传到您的 GAE 实例。

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 2019-07-11
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多