首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将儒略日期转换为标准日期?

如何将儒略日期转换为标准日期?
EN

Stack Overflow用户
提问于 2016-06-10 16:52:04
回答 2查看 25.6K关注 0票数 6

我有一个字符串,比如朱利安日期,比如"16152",意思是2016年的152天,或者"15234",意思是2015年的234天。

如何使用Python3标准库将这些儒略日期转换为类似20/05/2016的格式?

我可以像这样得到2016年:date = 20 + julian[0:1],其中julian是包含儒略日期的字符串,但是我如何根据1月份的1来计算其余的呢?

EN

回答 2

Stack Overflow用户

发布于 2016-06-10 17:15:20

首先,(从模块datetime)创建一个datetime对象

代码语言:javascript
复制
from datetime import datetime
from datetime import timedelta
julian = ... # Your julian datetime
date = datetime.strptime("1/1/" + jul[:2], "%m/%d/%y") 
# Just initializing the start date, which will be January 1st in the year of the Julian date (2 first chars)

现在添加从开始日期开始的天数:

代码语言:javascript
复制
daysToAdd = int(julian[2:]) # Taking the days and converting to int
date += timedelta(days = daysToAdd - 1)

现在,您可以按原样打印它:

代码语言:javascript
复制
print(str(date))

也可以使用strftime()函数。

代码语言:javascript
复制
print(date.strftime("%d/%m/%y"))

阅读有关strftime格式字符串here的更多信息

票数 4
EN

Stack Overflow用户

发布于 2019-07-31 03:40:41

我使用它将Juian日期更改为xml xsd:datetime

代码语言:javascript
复制
def julianDate2ISO8601(d, offset='+00:00'):
    """
     return ISO8601 formated datetime from julian date
     optional offset  [+|-]hh:mm
    """
    d = str(d)  # make sure it is a string
    # replace leading number with correct century
    centuryArray = ['19','20','21']
    d = centuryArray[int(d[:1])] + d[1:]
    # format string to iso 8601 datetime
    return datetime.datetime.strptime(d, '%Y%j').date().strftime(
        '%Y-%m-%dT00:00:00') + offset
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37743940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档