Python 3.x python中本地日期时间的儒略日数
正在尝试将Julian日数转换为本地日期时间python。如何做到这一点Python 3.x python中本地日期时间的儒略日数,python-3.x,datetime,julian-date,Python 3.x,Datetime,Julian Date,正在尝试将Julian日数转换为本地日期时间python。如何做到这一点 juliandate = 2474706.5316357147 print (datetime.strptime(juliandate, '%Y%j').date()) print (datetime.strptime(juliandate, '%Y%j').date()) TypeError: strptime() argument 1 must be str, not float 一种方便的方法是使用pan
juliandate = 2474706.5316357147
print (datetime.strptime(juliandate, '%Y%j').date())
print (datetime.strptime(juliandate, '%Y%j').date())
TypeError: strptime() argument 1 must be str, not float
一种方便的方法是使用pandas的
来确定日期时间,并使用适当的来源和单位,例如
或者,如果您想坚持使用标准库,可以使用timedelta
。朱利安纪元(公元前14713年1月1日12时)在过去有点遥远,因此它有助于为最近的日期引入偏移量,例如
from datetime import datetime, timedelta, timezone
dt_Offset = 2400000.500 # 1858-11-17
dt = datetime(1858, 11, 17, tzinfo=timezone.utc) + timedelta(juliandate-dt_Offset)
print(dt)
# 2020-11-14 19:09:07.199996+00:00
另见:
请注意,这两个结果均以UTC为单位。如果您想转换到某个时区,请查看,例如
from datetime import datetime, timedelta, timezone
dt_Offset = 2400000.500 # 1858-11-17
dt = datetime(1858, 11, 17, tzinfo=timezone.utc) + timedelta(juliandate-dt_Offset)
print(dt)
# 2020-11-14 19:09:07.199996+00:00
from zoneinfo import ZoneInfo
print(dt.astimezone(ZoneInfo('US/Eastern')))
# 2020-11-14 14:09:07.199996-05:00
# or my machine's local time (CET):
print(dt.astimezone())
# 2020-11-14 20:09:07.199996+01:00