从儒略字符串中获取日期和时间

Get date and time out of julian string

我有一个朱利安日期列表: 42304.90625

我是这样开始的:

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

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

谢谢

根据您在转换中使用 %j,我认为您的意思是 YYDDD 形式的大型机 "Julian" 日期。首先将值拆分为整数部分和小数部分:

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

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

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)