以毫秒和时区保存日期时间 - python

时间:2017-03-13 14:42:24

标签: python-3.x strptime

对于以下日期格式,我无法找出strptime的正确第二个参数

a = datetime.strptime('2017-03-09 14:00:00.000000+0000', '%y-%m-%d %H:%M:%S.%f+%z')

我得到的错误是:

ValueError: time data '2017-03-09 14:00:00.000000+0000' does not match format '%y-%m-%d %H:%M:%S.%f+%z'

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

正确的格式字符串是:

%Y-%m-%d %H:%M:%S.%f%z

下次使用strftime()使用给定格式编写日期时间时,您可以更轻松地解决这个问题。例如,你原来的:

datetime.datetime.now().astimezone(tz=None).strftime('%y-%m-%d %H:%M:%S.%f+%z')

给出:

17-03-13 22:53:50.010314++0800

从那里可以很容易地看出错误。

答案 1 :(得分:1)

事情是这样的:

import datetime

output_date = datetime.datetime.now(tz = datetime.datetime.now().astimezone().tzinfo).isoformat(timespec='milliseconds')

print(output_date)

给出:

"2021-04-20T16:56:29.800+02:00"

采用 ISO 8601 yyyy-MM-dd'T'HH:mm:ss.SSSXXX 格式。