【问题标题】:python convert ISO 8601 time doesn't workpython转换ISO 8601时间不起作用
【发布时间】:2018-02-20 10:34:54
【问题描述】:

我正在尝试从 python 中 azure logics 应用程序的 utcnow (ISO 8601) 函数转换日期:

这个返回如下格式:

2018-02-07T13:30:17.2967490Z

所以我正在这样做:

dateformat = datetime.strptime ("2018-02-07T13:30:17.2967490Z","%Y-%m-%dT%H:%M:%S.%fZ")

但它不起作用,你有什么想法吗?

【问题讨论】:

  • 定义“不起作用”。另外,小时、分钟和秒之间的空格是怎么回事……?!

标签: python iso8601


【解决方案1】:

您的格式中有空格。在您的微秒(6 位)之后,您出于某种原因拥有字符 0Z。所以你可以使用这个:

"%Y-%m-%dT%H:%M:%S.%f0Z"

如:

>>> datetime.strptime ("2018-02-07T13:30:17.2967490Z","%Y-%m-%dT%H:%M:%S.%f0Z")
datetime.datetime(2018, 2, 7, 13, 30, 17, 296749)

【讨论】:

  • 您好,谢谢,空间刚刚来自我的剪切和粘贴,抱歉,它也适用于这种格式的日期吗? 2018-02-07T15:41:49.7447688Z
  • 你从哪里得到这些格式奇怪的日期?
  • 来自天蓝色逻辑应用程序的 utcnow() 函数,请参阅docs.microsoft.com/en-us/azure/logic-apps/…
  • python微秒字段只接受6位数字。 ISO8601 标准(正如我所读)指定最多 6 位数字。所以我不知道有 7 位数字的原因是什么。
  • 你有什么解决办法吗?图片:ibb.co/ccRF8H
猜你喜欢
  • 1970-01-01
  • 2011-01-10
  • 2013-02-02
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 2015-01-25
相关资源
最近更新 更多