从朱利安字符串中获取日期和时间

时间:2018-07-31 10:23:56

标签: python datetime time julian

我有一个朱利安日期的清单: 42304.90625

我像这样开始:

jDate=42304.90625  
jDate=jDate[0:5] 
print(datetime.datetime.strptime(jDate, '%y%j').date()

我该如何提取时间? 有人可以帮我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

在转换中使用%j时,我认为您的意思是表示YYDDD格式的大型机“ Julian”日期。首先将值分为整数部分和小数部分:

>>> date, time = divmod(jDate, 1.0)
>>> date
42304.0
>>> time
0.90625

像这样使用divmod()不适用于负数,但是儒略日期永远不会是负数。现在将日期转换为字符串。正确的方法是:

date = str(int(date))

这样做:jDate=jDate[0:5] 不起作用,因为jDate是浮点数。 (您的帖子标题说这是一个字符串,但您的代码说这是一个浮点数。)

接下来将小数部分转换为秒:

>>> datetime.timedelta(days=time)
datetime.timedelta(0, 78300)

并将两者加在一起:

>>> datetime.datetime.strptime(date, '%y%j') + datetime.timedelta(days=0.90625)
datetime.datetime(2042, 10, 31, 21, 45)