指定日期字符串的正确日期时间格式是什么?

时间:2019-05-12 15:41:13

标签: python datetime

我有以下日期字符串:2019-05-12T14:52:13.136621898Z

我一生都无法确定格式。对我来说最接近的datetime格式字符串是:

%Y-%m-%dT%H:%M:%S.%fZ

我已经搜索了StackOverflow,Google和Python文档。

2 个答案:

答案 0 :(得分:2)

对于此类问题,值得关注的是datetime模块和parser.parse函数,该函数可以解析任何日期时间字符串,而无需提供格式!

from dateutil import parser

dt_obj = parser.parse('2019-05-12T14:52:13.136621898Z')
print(dt_obj)

最符合您要求的格式是'%Y-%m-%dT%H:%M:%S.%fZ',它与2019-05-12T14:52:13.136621Z一起使用,其中'。%f`封装了具有6个小数位的微秒,但是由于您的小数有9个小数位,因此不会为您工作!

答案 1 :(得分:0)

该格式称为“往返格式”,Python没有格式说明符,例如.NET具有o format specifier。因此,制作格式字符串可能会有点困难:

  • 在您的情况下,它的9位数表示秒。 @Devesh表示应该为8位数字,.NET框架使用7位数字。但通常,%f应该可以。
  • 最后不能使用硬编码的Z,因为那是时区。 Z仅适用于UTC,但将忽略所有其他时区。时区格式说明符为%z

datetime说:

  

utcoffset()转换为形式为±HHMM [SS [.ffffff]]的字符串,其中HH是2位数字字符串,给出了UTC偏移小时数,MM是2位数字字符串,给出了数字在UTC偏移分钟数中,SS是2位数字的字符串,给出了UTC偏移秒数,而ffffff是6位数字的字符串,给出了UTC偏移秒数。当偏移量为整数秒数时,将省略ffffff部分;而当偏移量为整数分钟数时,将省略ffffff和SS部分。例如,如果utcoffset()返回timedelta(hours = -3,minutes = -30),则%z将替换为字符串'-0330'

  

例如,“ + 01:00:00”将被解析为一个小时的偏移量。此外,提供“ Z”与“ +00:00”相同