【问题标题】:convert date to number python [duplicate]将日期转换为数字python [重复]
【发布时间】:2013-01-05 19:56:49
【问题描述】:

可能重复:
Fetching datetime from float and vice versa in python

像许多人一样,我从Matlab 切换到PythonMatlab 将每个日期表示为一个数字。 (Integers 是自 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')

【问题讨论】:

  • 我想这取决于你想要做什么样的日期操作。如果您习惯于进行数学运算,那么这种事情对日期并不适用。有很多变量可以由适当的日期对象为您处理,所以也许值得先考虑一下。只是一个想法!
  • 感谢 NPE。这是相似的,除了我想走另一条路(日期时间浮动)
  • danp,也许这就是要走的路。我正在考虑将其转移到 javascript 中,以便可以在其上使用 d3.js。但也许我太拘泥于旧的 Matlab 方式

标签: python matlab datetime


【解决方案1】:

试试这个:

import time
from datetime import datetime

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

print time.mktime(t1)

它会打印出你的日期的十进制表示形式。

【讨论】:

  • 感谢 ATOzTOA,这似乎更有效
  • 你将如何从中获取实际日期?
  • @user2601010 datetime 应该有一个接受整数参数的函数
【解决方案2】:

datetime 类提供了两个方法,datetime.timestamp() 为您提供了一个 floatdatetime.fromtimestamp(timestamp) 进行反向转换。要获取与当前时间对应的时间戳,您可以使用 time.time() 函数。

请注意,POSIX 纪元是 1970-01-01。

【讨论】:

  • datetime.fromtimestamp(100.1) (out) datetime.datetime(1970, 1, 1, 2, 1, 40, 100000)
  • 值得指出的是这只适用于Python>=3.3。
猜你喜欢
  • 1970-01-01
  • 2016-01-13
  • 2018-09-21
  • 2020-09-05
  • 2013-03-11
  • 2016-05-03
  • 1970-01-01
  • 2015-09-30
相关资源
最近更新 更多