栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从字符串日期中提取年份和儒略日

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从字符串日期中提取年份和儒略日

首先,您可以将其转换为这样的

datetime.datetime
对象:

>>> import datetime>>> fmt = '%Y.%m.%d'>>> s = '2012.11.07'>>> dt = datetime.datetime.strptime(s, fmt)>>> dtdatetime.datetime(2012, 11, 7, 0, 0)

然后,您可以使用上的方法

datetime
来获取所需的内容……除了
datetime
没有直接所需的功能之外,因此您需要转换为时间元组

>>> tt = dt.timetuple()>>> tt.tm_yday312

术语“朱利安日”具有几个不同的含义。如果要查找

2012312
,则必须间接执行此操作,例如,以下一项。

>>> int('%d%03d' % (tt.tm_year, tt.tm_yday))2012312>>> tt.tm_year * 1000 + tt.tm_yday2012312

如果您正在寻找不同的含义,那么应该可以从这里弄清楚。例如,如果您想要“自4713年1月1日起的天数”的含义,并且您有一个要求使用公历年份和年份的公式,则可以在上面插入这两个值。(如果您有一个公式需要格里高利历年,月和日,您甚至不需要执行该

timetuple
步骤。)如果您无法确定从那里去哪里,请询问更多详细信息。

如果您没有公式,甚至可能已经有了公式,那么最好的办法就是在PyPI和ActiveState周围查找预先存在的模块。例如,快速搜索出现了一个名为的东西

jdcal
。我以前从未见过它,但是可以快速
pipinstall jdcal
简短地阅读自述文件,并且能够做到这一点:

>>> sum(jdcal.gcal2jd(dt.year, dt.month, dt.day))2456238.5

这与USN朱利安日期转换器给我的结果相同。

如果您想要整数儒略日,而不是分数儒略日,则必须决定要舍入的方向-朝0,朝负无穷大,将正午舍入到第二天,将正午舍入到偶数天,等等。(请注意,朱利安日期的定义是从4713BC年1月1日中午开始,所以2012年11月7日的一半是2456238,另一半是2456239,只有您知道您想要哪个……例如,朝0舍入:

>>> int(sum(jdcal.gcal2jd(dt.year, dt.month, dt.day)))2456238


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637711.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号