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

在Python中将字符串格式的ISO日期转换为历元

赫连睿
2023-03-14

我有一个字符串格式化的日期2021-12-14T12:05:51.8031499我怎么能得到这个的Epoch值?

共有2个答案

暨修洁
2023-03-14

首先将日期字符串解析为datetime对象,然后使用时间戳()函数返回其中的纪元时间。

注意,示例时间中有一个额外的数字。微秒有6位而不是7位(例如803149)。

from datetime import datetime, timezone
d = '2021-12-14T12:05:51.803149'

dt = datetime.strptime(d, '%Y-%m-%dT%H:%M:%S.%f').replace(tzinfo=timezone.utc)
print(dt)

# Return the time in seconds since the epoch 
seconds_since_epoch = dt.timestamp()
print(seconds_since_epoch)

# convert epoch back to datetime object
d2 = datetime.utcfromtimestamp(seconds_since_epoch)
print(d2)

输出:

2021-12-14 12:05:51.803149+00:00
1639483551.803149
2021-12-14 12:05:51.803149
公良莫希
2023-03-14

dateutil是您的朋友,还有7位小数秒:

from dateutil.parser import isoparse

isoparse("2021-12-14T12:05:51.8031499")
Out[2]: datetime.datetime(2021, 12, 14, 12, 5, 51, 803149)

isoparse("2021-12-14T12:05:51.8031499").timestamp()
Out[3]: 1639479951.803149

注意:给定ISO格式的日期/时间将产生一个原始的datetime对象,Python将其视为本地时间,即在为时间戳()计算Unix时间之前,它将从计算机的本地时间设置转换为UTC!

 类似资料:
  • 我有Excel数据,并尝试使用Talend Big data for Open Studio将数据插入MongoDB。这是我的工作, 在excel表单中,我有一个日期值列,格式为7/13/2017(MM/DD/YYYY)作为字符串类型,我正在尝试将该列值作为ISO格式ISODate(“2017-07-13T00:00:00.000Z”)插入MongoDB中。

  • 我需要将一些字符串日期转换为另一种格式的字符串日期 我想按照“yyyy-MM-dd'T'HH:MM:ss.SSSXX”模式获得ISO-8601格式的结果日期字符串 你能帮我实现这个吗?

  • 我有这段代码,在这里我试图将日期字符串从一种格式转换为另一种格式,最后我想再次使用日期对象。

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 问题内容: 在Python中,如何转换这样的字符串: 2010年12月16日,星期四12:14:05 +0000 到ISO 8601格式,同时保留时区? 请注意,原始日期是字符串,并且输出也应该是字符串,而不是类似字符串。 不过,使用第三方库没有问题。 问题答案: 使用dateutil:

  • 问题内容: 我正在尝试将字符串转换为日期格式,我尝试了很多方法来实现此目的,但是没有成功。我的字符串是“ 2012年1月17日”。我想将其转换为“ 2011-10-17”。有人可以告诉我这样做的方法吗?如果您通过示例工作过,那将是真正的帮助! 问题答案: