我像这样开始:
jDate=42304.90625
jDate=jDate[0:5]
print(datetime.datetime.strptime(jDate, '%y%j').date()
我该如何提取时间? 有人可以帮我吗?
谢谢
答案 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)