首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python到Azure Edm.DateTimeOffset

Python到Azure Edm.DateTimeOffset
EN

Stack Overflow用户
提问于 2020-06-08 10:41:30
回答 2查看 977关注 0票数 0

如何将格式为2020-01-03 :30:30:44.201000的字符串转换为日期时间偏移感知字符串。

我正在从cosmosdb数据库中获取这个值,并试图将其插入到搜索服务中。

将错误作为

代码语言:javascript
复制
Cannot convert the literal '2020-01-08 11:49:41.653000' to the expected type 'Edm.DateTimeOffset'

我想输出应该采用以下格式。

代码语言:javascript
复制
"2015-09-20T00:00:00Z"

我想使用python,但不知道如何将字符串转换为可以理解的azure格式。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-08 11:04:15

您能尝试以下几种方法吗?

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2020-06-08 11:27:01

将文字字符'Z‘附加到信号UTC可以通过'2020-01-03 05:30:44.201000' + 'Z'非常简单地实现('T’或空格都是ISO格式,因此不需要更改这个格式)。

但是,我认为正确的方法是将其转换为时区感知的datetime对象,然后返回到string。使用等格式方法(Python ),这可能类似于

代码语言:javascript
复制
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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62260202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档