将日期转换为数字 Python

4

可能重复:
从Python中的浮点数提取日期时间,反之亦然

像许多人一样,我从Matlab转换到了PythonMatlab将每个日期表示为一个数字。(整数是自00-00-0000以来的天数,小数是一天中的时间)。 我认为python也是这样做的,只不过起始日期不同,为0-0-0001

我一直在尝试使用datetime,但似乎无法摆脱datetime对象和timedeltas。我相信这很简单,但我该如何使用普通的数字(浮点数)?

也许需要一些上下文:

我引入一个日期和时间戳,并将它们连接在一起以形成一个时间值:

from datetime import datetime
date_object1 = datetime.strptime(date[1][0] + ' ' + date[1][1], '%Y-%m-%d %H:%M:%S')
date_object2 = datetime.strptime(date[2][0] + ' ' + date[2][1], '%Y-%m-%d %H:%M:%S')

我想这取决于您要进行什么类型的日期操作。如果您习惯进行数学运算,那么这种方法对日期并不适用...因为日期有太多的变量,而适当的日期对象将为您处理这些变量,因此也许值得先好好考虑一下。这只是一个想法! - danp
谢谢NPE。这很相似,只是我想要相反的方式(从日期时间到浮点数)。 - reabow
也许danp是正确的选择。我正在考虑将它移植到JavaScript上,这样我就可以在上面玩d3.js了。但也许我太固执于旧的Matlab方式了。 - reabow
2个回答

8

试试这个:

import time
from datetime import datetime

t = datetime.now()
t1 = t.timetuple()

print time.mktime(t1)

它会打印出您日期的十进制表示。


谢谢 ATOzTOA,这似乎更有效。 - reabow
那么你如何从中获取实际日期呢? - RamPrasadBismil
@user2601010 datetime 应该有一个接受整数参数的函数。 - ATOzTOA

2

datetime.fromtimestamp(100.1) (输出) datetime.datetime(1970, 1, 1, 2, 1, 40, 100000) - reabow
3
值得指出的是,此方法仅适用于Python版本大于等于3.3。 - aquavitae

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接