【发布时间】:2014-06-19 21:38:22
【问题描述】:
我正在读取时间变量用 udunits 编码的数据。这意味着时间变量是自 1-1-1 00:00:00 以来的小时数,但是,它不遵循标准的闰年约定。
我正在尝试将自 1-1-1 00:00:00 以来的小时数转换为 python datetime 对象,但由于 datetime 确实遵循闰年约定,最终得到了不正确的答案。例如:
t_data = 17584272 # This is time stamp for January 1st, 2007 in the data file
day = datetime.datetime(1,1,1) + datetime.timedelta(hours=t_data)
print(day)
结果:
>>> 2007-01-03 00:00:00
有没有办法在 python 日期时间中“关闭”闰年约定?
提前感谢您的帮助!
【问题讨论】:
-
在
datetime中无法关闭闰年,但有一种方法可以更正您的时间戳。你能再举几个例子,尤其是那些分散几年的例子吗? -
简短的回答是否定的。不过,似乎确实有一些适用于 Python 的 udunits 接口,例如code.google.com/p/cfunits-python
-
17584272.0/24.0/365.0 == 2007.34,这意味着如果没有闰日,日期应该是 2007 年的三分之一(即某个时候的四月)。 -
你怎么知道那是 2007 年 1 月 1 日?
-
@MarkRansom 以下是更多示例:1/1/1990 = 1.7435256E7、1/1/1995 = 1.747908E7、1/1/2000 = 1.7522904E7、1/1/2013 = 1.763688 E7 谢谢!