Python 将日期时间字符串转换为其他格式

Python 将日期时间字符串转换为其他格式,python,Python,我有两个日期时间字符串,格式如下 2019-07-09T19:42:19,002Z 2019-07-09T12:42:19,000-0700 2019-07-09T19:42:19.002+00:00 2019-07-09T12:42:19.000-07:00 我需要将这两个日期时间字符串转换成这种格式 2019-07-09T19:42:19,002Z 2019-07-09T12:42:19,000-0700 2019-07-09T19:42:19.002+00:00 2019-07-09

我有两个日期时间字符串,格式如下

2019-07-09T19:42:19,002Z
2019-07-09T12:42:19,000-0700
2019-07-09T19:42:19.002+00:00
2019-07-09T12:42:19.000-07:00
我需要将这两个日期时间字符串转换成这种格式

2019-07-09T19:42:19,002Z
2019-07-09T12:42:19,000-0700
2019-07-09T19:42:19.002+00:00
2019-07-09T12:42:19.000-07:00
我试过了

dt = parser.parse(dateTime)
ldt = parser.parse(localDateTime)
但这给了我这个

dt = 2019-07-09 19:42:19.002000+00:00
ldt = 2019-07-09 12:42:19-07:00
这两个词都不包括“t”。毫秒需要在dt中被截断为三位数

作为参考,前2个日期时间值符合ISO 8601,我需要它符合RFC 3339

from dateutil import parser

dateTime = '2019-07-09T19:42:19,002Z'
localDateTime = '2019-07-09T12:42:19,000-0700'

dt = parser.parse(dateTime)
ldt = parser.parse(localDateTime)
那么:
datetime.datetime.strptime(dt,“%Y-%m-%dt%H:%m:%S,%fZ”)

我刚刚运行了dt=datetime.datetime.strptime(datetime,“%Y-%m%dt%H:%m:%S,%fZ”)打印(dt),它返回2019-07-09 19:42:19.002000。这不是我想要的。dt=“2019-07-09T19:42:19002Z”t=datetime.datetime.strtime(dt,%Y-%m-%dt%H:%m:%s,%fZ”)打印(t)#2019-07-09 19:42:19.002000打印(t.isoformat('t'))#2019-07-09T19:42:19.002000您可以格式化输出
dt.strftime(“%Y-%m-%dt%H:%m.%s%f%z”)
但它仍然给出了6位毫秒的数字,通过字符串格式化,我可以得到3位毫秒的数字
dt.strftime(“%Y-%m-%dt%H:%m.%S.{:03}%z.”格式(dt.microsecond//1000)