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).days
    mjd_s=dateT.hour*3600.0+dateT.minute*60.0+dateT.second+dateT.microsecond/1000000.0
    return 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.5

def jd2mjd(jd):
    return jd-2400000.5


if '__main__' == __name__:
    strTime='2020  1  1  1  2  3.456789'
    dateT=str2time(strTime)
    mjd=time2mjd(dateT)
    print(mjd)
    print(mjd2time(mjd))
    
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值