当前位置: 首页 > 知识库问答 >
问题:

ISO格式的Python UTC时间戳

谷泽宇
2023-03-14

我知道有人问过这个问题,但没有提供解决方案。Python UTC日期时间对象的ISO格式不包括Z(Zulu或零偏移)

我正在寻找一种在Python中用这种格式生成UTC时间戳的干净方法。我需要的格式是2013-10-29T09:38:41.341Z

具体来说,我需要在最后加上“Z”。Python的datetime.utcnow(). isoform()不会在末尾附加Z。

请注意,手动添加“Z”不是我可以接受的解决方案。我正在寻找一个干净的方法来做到这一点。

以ISO格式生成带后缀Z的UTC时间戳的干净方法是什么?

共有3个答案

丁慈
2023-03-14

由于缺乏声誉,我将此添加为新答案。

Tomasz Swider解决方案是一个良好的开端,但是如果提供的时间没有微秒,则[:-3]将缩短秒数:

我将使用utcfromtimestamp演示这一点:

In [10]: datetime.utcfromtimestamp(0.1).isoformat()[:-3] + 'Z'
Out[10]: '1970-01-01T00:00:00.100Z'

In [10]: datetime.utcfromtimestamp(0).isoformat()[:-3] + 'Z'
Out[11]: '1970-01-01T00:00Z'

我认为这是一个更干净的解决方案,可以获得ISO日期(毫秒)和Zulu时间的“Z”:

datetime.utcnow().isoformat(timespec='milliseconds')+ 'Z'

再次演示如何使用UTCFROM时间戳:

In [25]: datetime.utcfromtimestamp(0.1).isoformat(timespec='milliseconds')+ 'Z'
Out[25]: '1970-01-01T00:00:00.100Z'

In [25]: datetime.utcfromtimestamp(0).isoformat(timespec='milliseconds')+ 'Z'
Out[25]: '1970-01-01T00:00:00.000Z'
鲜于俊侠
2023-03-14

可以使用箭头库。

箭头还没有覆盖它,请参阅github问题。我不认为任何python库可以做到这一点。但是现在黑客很简单。

需要安装pip虽然:

$ pip install arrow

然后得到你的iso格式,但没有祖鲁格式

import arrow

arrow.utcnow().isoformat() 
#'2017-02-10T08:44:38.954159+00:00'

或者你自己做。

arrow.utcnow().format('YYYY-MM-DDTHH:mm:ss.SSS') + 'Z'
# 2017-02-11T12:34:30.483Z
郭元凯
2023-03-14

像这样的怎么样

datetime.utcnow().isoformat()[:-3] + 'Z'
 类似资料:
  • 我试图理解UTC和ISO格式之间的区别,以及在服务器之间传输消息时使用什么。所以当我尝试以下方法时,我得到的是

  • 我正在寻找javascript/jquery库,它可以为我提供UI和功能来选择ISO 8601格式的持续时间。 用户界面应包含多个级联选择框,用户可以选择月,小时,天,周...在ISO_8601中定义。 选择后,库应将其转换为标准ISO_8601持续时间格式的代码,反之亦然。 例如,“P3Y6M4DT12H30M5S”表示持续时间为“三年六个月四天十二小时三十分五秒”。

  • 我正在寻找一种从“ISO 8601持续时间格式”(P0DT0H0M0S)转换为小时的便捷方法。 到目前为止,我想到了这个: 如您所见,我的方法是将数字拆分并乘以24、1、1/60、1/3600以得到小时。我可以减少代码量吗? 样本数据和所需结果 输入: 'P1DT2H3M44S' (1 天 2 小时 3 分 44 秒) 期望输出: 26.062222222222222 (这是小时)

  • 我有一个关于格式化程序的问题。 在SWAPI(https://SWAPI.co/documentation#people)中,您可以读取和日期,其格式如下: 但是在预定义格式化程序中的类DateTimeFormatter的文档一节中,我看不到任何与SWAPI日期示例匹配的格式化程序。

  • 问题内容: 我正在尝试以 2015-08-20T08:26:21.000Z* 到 2015-08-20T08:26:21Z 的格式创建字符串 * 我知道可以使用某些String拆分技术来做到这一点,但是我想知道是否有一种优雅的解决方案(只需最少的代码更改)。 以上都是时间字符串,我需要的最后一个是ISO 8601中的Date。http://tools.ietf.org/html/rfc3339#s

  • 是否有任何方法可以解析ISO 8601持续时间,例如“P3Y6M4DT12H30M5S”,并返回类似“3年、6个月、4天、12:30:05”的内容 我对润滑剂的持续时间或解析包没有运气。