python实现datetime(年月日时分秒)、儒略日(JD)、简化儒略日(MJD)的互相转换

用python实现datetime(年月日时分秒)、儒略日(JD)、简化儒略日(MJD)的互相转换。

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 16 16:13:31 2020@author: sunpuyu
"""
import datetime# 字符串转时间------------------------------------------------
# str format:"2020  3 29  0  0  0[.000000]" []表示可有可无
def str2time(strTime):if len(strTime)>20:#暂时未用到msec=int(float('0.'+strTime[20:])*1000000) #微秒str2=strTime[0:19]+' '+str(msec)return datetime.datetime.strptime(str2,'%Y %m %d %H %M %S %f')#datetime类转mjd
def time2mjd(dateT):t0=datetime.datetime(1858,11,17,0,0,0,0)#简化儒略日起始日mjd=(dateT-t0).daysmjd_s=dateT.hour*3600.0+dateT.minute*60.0+dateT.second+dateT.microsecond/1000000.0return mjd+mjd_s/86400.0#mjd转datetime类
def mjd2time(mjd):t0=datetime.datetime(1858,11,17,0,0,0,0)#简化儒略日起始日return t0+datetime.timedelta(days=mjd)#mjd和jd互转
def mjd2jd(mjd):return mjd+2400000.5def jd2mjd(jd):return jd-2400000.5if '__main__' == __name__:strTime='2020  1  1  1  2  3.456789'dateT=str2time(strTime)mjd=time2mjd(dateT)print(mjd)print(mjd2time(mjd))


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部