如何将格式为2020-01-03 :30:30:44.201000的字符串转换为日期时间偏移感知字符串。
我正在从cosmosdb数据库中获取这个值,并试图将其插入到搜索服务中。
将错误作为
Cannot convert the literal '2020-01-08 11:49:41.653000' to the expected type 'Edm.DateTimeOffset'我想输出应该采用以下格式。
"2015-09-20T00:00:00Z"我想使用python,但不知道如何将字符串转换为可以理解的azure格式。
发布于 2020-06-08 11:04:15
您能尝试以下几种方法吗?
from datetime import datetime
s = "2020-01-03 05:30:44.201000"
dttm = datetime.strptime(s, "%Y-%m-%d %H:%M:%S.%f")
dttm2 = dttm.strftime("%Y-%m-%dT%H:%M:%S.%fZ") # Prints "2020-01-03T05:30:44.201000Z"
print dttm2发布于 2020-06-08 11:27:01
将文字字符'Z‘附加到信号UTC可以通过'2020-01-03 05:30:44.201000' + 'Z'非常简单地实现('T’或空格都是ISO格式,因此不需要更改这个格式)。
但是,我认为正确的方法是将其转换为时区感知的datetime对象,然后返回到string。使用等格式方法(Python ),这可能类似于
from datetime import datetime, timezone
dtobj = datetime.fromisoformat('2020-01-03 05:30:44.201000').replace(tzinfo=timezone.utc)
# datetime.datetime(2020, 1, 3, 5, 30, 44, 201000, tzinfo=datetime.timezone.utc)
dtstr = dtobj.isoformat()
# '2020-01-03T05:30:44.201000+00:00'当然,先决条件是输入字符串引用UTC。
https://stackoverflow.com/questions/62260202
复制相似问题