当前位置: 首页 > 面试题库 >

Python-使用strftime将python datetime转换为纪元

邢皓
2023-03-14
问题内容

我在UTC有一个时间,我想要从纪元开始经过的秒数。

我正在使用strftime将其转换为秒数。以2012年4月1日为例。

>>>datetime.datetime(2012,04,01,0,0).strftime('%s')
'1333234800'

从纪元开始的UTC时间为2012年4月1日,但上述时间返回1333234800,相差1小时。

因此,看来strftime正在考虑我的系统时间,并在某处应用了时区偏移。我以为日期时间纯粹是天真的?

我该如何解决?如果可能的话,除非标准,否则避免导入其他库。(我有可移植性问题)。


问题答案:

如果要将python日期时间转换为自纪元以来的秒数,则可以明确地执行以下操作:

>>> (datetime.datetime(2012,04,01,0,0) - datetime.datetime(1970,1,1)).total_seconds()
1333238400.0

在Python 3.3+中,你可以timestamp()改用:

>>> datetime.datetime(2012,4,1,0,0).timestamp()
1333234800.0

为什么不应该使用 datetime.strftime('%s')

Python实际上并不支持%s作为strftime的参数(如果你不在http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior中查看,则不在列表中),唯一之所以起作用,是因为Python会将信息传递到使用本地时区的系统的strftime中。

>>> datetime.datetime(2012,04,01,0,0).strftime('%s')
'1333234800'


 类似资料:
  • 我有一个UTC时间,我想知道从epoch开始的秒数。 我正在使用strftime将其转换为秒数。以2012年4月1日为例。 2012年4月1日,来自epoch的UTC为1333238400,但上面返回的是1333234800,相差1小时。 因此,看起来strftime正在考虑我的系统时间,并在某个地方应用时区偏移。我以为约会时间纯粹是天真的? 我该如何解决这个问题?如果可能,除非是标准的,否则避免

  • 问题内容: 我转换了SQLite行 直接针对MySQL怪物: 请帮助我将其重写为较短的内容。 问题答案: SQLite中的STRFTIME()与MySQL中具有相反参数的DATE_FORMAT()相似。 由于和都映射到同一事物,因此您的表达式可以简单地写为:

  • 问题内容: 我有DATETIME格式的mysql列。 在纪元秒内有没有办法访问此专栏?如果没有,将日期时间格式转换为纪元秒的最佳方法是什么?哪种类型的字段最能捕捉到这一点? 问题答案: 使用MySQL的功能

  • 问题内容: 如何在Java中将纪元转换为? 给定的代码期望 长 值,因此将抛出上面给出的值。 问题答案: 罗勒·布尔克(BasilBourque)的答案很不错。从小数部分中取出纳秒到一个纳秒整数可能会导致一个或两个陷阱。我建议: 此打印 纳秒级不需要64位,因此我只是使用。 假设:我假设您的字符串包含一个浮点数,并且可以对其进行签名,例如,这意味着在纪元开始 前 一秒半。如果某一天的时间用科学计数

  • 问题内容: 我目前在使用Python时遇到问题。我有一个Pandas DataFrame,列之一是带有日期的字符串。格式为: “%Y-%m-%d%H:%m:00.000”。例如:“ 2011-04-24 01:30:00.000” 我需要将整列转换为整数。我尝试运行此代码,但是它非常慢,并且有几百万行。 你们知道如何将整个列转换为纪元时间吗? 提前致谢 ! 问题答案: 将字符串转换为using ,

  • 我正在训练把人类可读时间转换成纪元时间。这是我的测试用例 上面的代码打印4次“无效输入”,然后第5行打印正确的历元值,因为我的text='12.12.2020'输入字符串符合第5个条件。我需要打印,如果我的“文本”条件符合任何这些格式,然后只打印纪元值,否则打印“无效输入”。有谁能帮我解决这个问题吗?提前道谢。