【问题标题】:Python UTC offset valuePython UTC 偏移值
【发布时间】:2013-07-02 12:54:28
【问题描述】:

我正在尝试将此 20130607T064835-0700 转换为 unix 时间表示。不幸的是,由于某种原因我不能这样做。我设法创建了一些代码,但它不起作用。

time.mktime(datetime.datetime.strptime('20130607T064835-0700', '%Y%m%dT%H%M%S%z').strftime("%s"))

看起来 Python 中 %z 的日期时间表示效果不佳。

>>> print time.strftime('%z')
Central European Daylight Time
>>> print time.strftime('%Z')
Central European Daylight Time

我认为 %z 应该像文档中所说的那样返回偏移量:

%z  UTC offset in the form +HHMM or -HHMM (empty string if the the object is naive).

我做错了什么?

【问题讨论】:

  • 什么操作系统?我相信时间函数都使用您系统上的底层 C 库;在我的系统上,我得到了 -0400 和 EDT 作为您的示例。
  • Windows... 是的,你是对的,这是系统问题,我已经尝试在 Linux 上执行此操作,并且效果很好。如何在 Windows 上转换它?

标签: python python-2.7 utc


【解决方案1】:

要在 windows 下获取时间戳的 unix 时间,您可以执行以下操作(在 python 2.7 上测试):

from dateutil.parser import parse
from datetime import datetime
import pytz

t = parse('20130607T064835-0700')
e = datetime(1970, 1, 1, 0, 0, tzinfo=pytz.utc)
d = t - e

unixtime = d.total_seconds()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 2010-09-16
    • 1970-01-01
    • 2020-10-21
    • 2016-09-05
    • 2017-05-26
    • 2014-02-04
    • 2011-03-11
    相关资源
    最近更新 更多