python - 如何将提交的日期规范化为 UTC 格式 (2019-10-29T02:20:30.45Z) [这不是重复的问题,请阅读整个问题一次]
问题描述
我是 python 开发的新手。
当前我正在从 API 调用中提取日期,例如 = 10-29-2019 02:32 (mm-dd-yyyy %H,%M) 注意:我这里没有秒数,所以我想为秒
我希望将其标准化为 ISO 8601 UTC 格式 2019-10-29T02:20:30.45Z 。
我一直在尝试各种平台建议的多种方法,但我无法获得“45Z”部分。我知道 45 表示微秒。
这是我最接近的事情:
local = pytz.timezone ("Asia/Kolkata")
datetime_without_tz = datetime.datetime.strptime("2015-02-14 12:34:56", "%Y-%m-%d %H:%M:%S")
datetime_with_tz = local.localize(datetime_without_tz, is_dst=None) # No daylight saving time
datetime_in_utc = datetime_with_tz.astimezone(pytz.utc)
x=datetime_in_utc.strftime('%Y-%m-%d %H:%M:%S %Z')#if i print here 2019-10-28 21:02:00 UTC+0000
print (datetime.datetime.strptime(x,"%Y-%m-%d %H:%M:%S %Z%z").isoformat()) #output :2019-10-28T21:02:00+00:00
问题是:
- 无法确定变量的日期,即 datetime.datetime.strptime(date, "%Y-%m-%d %H:%M")
- 无法获得 UTC 格式的“Z”部分
任何人都可以让我知道如何将其转换为上述格式。
解决方案
我们可以使用如下相同部分的代码来以格式显示
local = pytz.timezone ("Asia/Kolkata")
datetime_without_tz = datetime.datetime.strptime("2015-02-14 12:34:56", "%Y-%m-%d %H:%M:%S")
datetime_with_tz = local.localize(datetime_without_tz, is_dst=None)
print(datetime_with_tz.strftime('%Y-%m-%dT%H:%M:%SZ %Z%z'))
>>> 2015-02-14T12:34:56Z IST + offset
转换为指定的时区,我们可以使用
datetime_in_utc = datetime_with_tz.astimezone(pytz.utc)
print (datetime.datetime.strptime(x,"%Y-%m-%d %H:%M:%S %Z%z")
推荐阅读
- vb.net - 如何使用 VB 获得所有重复排列的总和?
- php - 尽管成功拨打电话,Twilio Ajax 响应始终触发“失败”
- python - 使用带有一个查询的烧瓶将数据插入到多个 mySQL 表中
- c++ - C++ 当 std::allocator 超出范围时会发生什么?
- amazon-kinesis - 将快速数据写入亚马逊运动流的最简单方法?
- bash - sed中的音译
- amazon-s3 - 用于 SPA Angular 6 应用程序的 AWS S3 和 AWS ELB,而不是 AWS Elastic beanstalk
- python - 如何仅将数据框的列输出到文件
- java - 将字符串数组从 xml 加载到 ArrayList 的最有效方法是什么?
- google-sheets - 当一列的数据包含 CSV 时,SPLIT QUERY 结果分成单独的行