Python 3.x 使用毫秒和时区保存日期时间-python

Python 3.x 使用毫秒和时区保存日期时间-python,python-3.x,strptime,Python 3.x,Strptime,对于以下日期格式,我无法找出正确的第二个参数strtime 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' 有人能帮我吗?正确的格式字符串是: %Y-

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

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'

有人能帮我吗?

正确的格式字符串是:

%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

从这里很容易看出问题所在。

正确的格式字符串是:

%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
从那里很容易看出问题所在。

事情就是这样的:

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'HH:MM:ss.SSSXXX格式。

它是这样运行的:

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'HH:MM:ss.SSSXXX格式