繁体   English   中英

如何将UTC日期时间字符串转换为日期?

[英]How to convert a UTC datetime string into date?

我想将一个日期时间字符串转换回日期。 时区给了我麻烦,我不知道如何解决它。

datetime.datetime.strptime(json_event['date_time'], '%a, %d %b %Y %H:%M:%S %Z')

我收到错误消息:

ValueError:时间数据'星期二,2014年4月8日17:57:34 -0000'与格式'%a,%d%b%Y%H:%M:%S%Z'不匹配

如果我退出%Z ,我收到此错误消息:

ValueError:未转换的数据保持:-0000

日期最初是UTC:

current_date = datetime.datetime.utcnow()

更新:

我想在没有任何外部库(如dateutil.parser情况下本地解决这个dateutil.parser ,因此复制中的解决方案对我没有帮助。

import dateutil.parser

date = dateutil.parser.parse(json_event['date_time'])

如果你没有dateutil ,那就dateutil

pip install python-dateutil

如果你总是得到UTC时间:忽略最后6个字符(空格,符号,4个数字)然后转换为日期时间,就像你没有使用%Z一样。

您将遇到的一个问题是您的系统会认为它是您的本地时区,如果您将其转换为任何其他时区,它将会错误地转换。 在这种情况下,下一步是使用另一个问题的答案

如果您也获得非UTC时间:

  1. 裁掉最后6个字符。
  2. 在最后4位数上做strptime,格式为HHMM( %H%M ) - > Y
  3. 在下面的步骤5中获取标志并反向。
  4. 然后像上面那样得到剩余的日期时间(留下最后6个字符,格式中没有%Z) - > X
  5. 然后XY(或X + Y,反转从步骤3得到的东西)将给你一个日期时间对象。 然后按照链接答案中的步骤操作,以使日期时间obj时区有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM