Python:将年/月/日/小时/分钟/秒转换为自1970年1月1日起的秒数
我知道怎么在C和Java中做这个,但我不知道有什么快速的方法可以把年、月、日、小时、分钟和秒转换成自1970年1月1日以来的秒数。
有人能帮我吗?
到目前为止,我已经弄明白了怎么创建一个datetime
对象,但我就是无法得到自那个时间点以来的秒数。
(补充:我的问题其实是这个问题的反向:Python:从自1970年起的秒数到相对日期)
5 个回答
3
在编程中,有时候我们需要把一些数据放到一个地方,方便以后使用。这就像把东西放进一个盒子里,等需要的时候再拿出来。
有些时候,我们会用到一个叫做“数组”的东西。数组就像一个排成一行的盒子,每个盒子里可以放一个数据。你可以通过盒子的编号来找到里面的东西。
另外,还有一种叫做“对象”的东西。对象就像一个大盒子,里面可以放很多不同的东西,比如数字、文字,甚至其他的盒子。你可以给这些东西起名字,这样就更容易找到它们。
在编程时,我们常常需要把这些数据进行处理,比如计算、排序或者查找。就像在整理你的书架,把书按字母顺序排好,或者找一本特定的书。
总之,编程就是在用这些“盒子”来存放和处理信息,让计算机能够理解并执行我们的指令。
import calendar
calendar.timegm(datetime_object.utctimetuple())
7
你可以使用 datetime.datetime(1970, 1, 1)
作为一个参考点,然后从一个 datetime.timedelta
对象中获取总秒数,方法如下:
from datetime import datetime
delta = your_date - datetime(1970, 1, 1)
delta.total_seconds()
13
使用 timetuple
或 utctimetuple
方法可以获取时间元组,然后用 time.mktime
将其转换为时间戳。
>>> import datetime
>>> dt = datetime.datetime(2011, 12, 13, 10, 23)
>>> import time
>>> time.mktime(dt.timetuple())
1323793380.0
这里面有一个有趣的bug,相关信息可以查看 http://bugs.python.org/issue2736,这个内容值得一读,任何想要转换为时间戳的人都应该看看。根据那个讨论,正确的方法是:
timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)