加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 需要帮助格式化Google API的日期时区

发布时间:2020-12-16 22:40:21 所属栏目:Python 来源:网络整理
导读:我从bigquery记录中检索了一个日期时间(使用google.cloud.bigquery库),需要根据this api method的startTime参数将其发送到rfc 3339格式的google admin sdk报告API.API期待datetime看起来像这样: 2010-10-28T10:26:35.000Z 通常可以通过创建没有tzinfo的py

我从bigquery记录中检索了一个日期时间(使用google.cloud.bigquery库),需要根据this api method的’startTime’参数将其发送到rfc 3339格式的google admin sdk报告API.API期待datetime看起来像这样:

2010-10-28T10:26:35.000Z

通常可以通过创建没有tzinfo的python datetime并调用isoformat来实现这一点:

>>> now = datetime.utcnow()
>>> now = now.isoformat("T") + "Z"
>>> now
'2017-06-01T13:05:32.586760Z'

我遇到的问题是来自BigQuery的时间戳包含一个tzinfo对象,这导致isoformat返回Google API无法处理的文本.

>>> timestamp_from_bigquery
'datetime.datetime(2017,5,31,16,13,26,252000,tzinfo=

具体来说,Google的API不接受00:00作为startTime.如果我从字符串手动删除00:00 API调用工作,但我不知道如何在没有丑陋的字符串黑客的情况下在python中执行此操作.有没有一些干净的方法从datetime对象中删除它?

我也尝试了这个,但结果相同:

>>> timestamp_from_bigquery.replace(tzinfo=None)
'2017-05-31T16:13:26.252000+00:00Z'
最佳答案
使用datetime.datetime.strftime():

datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ')
timestamp_from_bigquery.strftime('%Y-%m-%dT%H:%M:%S.%fZ')

当然要确保日期时间在正确的时区.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读