将日期转换为序数python?

2024-09-30 06:29:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想皈依 2010-03-01至733832

我刚发现这个原始密码

d=datetime.date(year=2010, month=3, day=1)
d.toordinal()

来自this

但我想要更像

d=datetime.date('2010-03-01')
d.toordinal()

提前谢谢


Tags: 密码datetimedatethisyeardaymonthtoordinal
3条回答

像这样:

datetime.strptime("2016-01-01", "%Y-%m-%d").toordinal()

您需要对日期字符串使用^{},指定格式,然后可以调用date对象的toordinal方法:

>>> from datetime import datetime as dt
>>> d = dt.strptime('2010-03-01', '%Y-%m-%d').date()
>>> d
datetime.date(2010, 3, 1)
>>> d.toordinal()
733832

在这种情况下,对date方法的调用是多余的,并且只为使对象与date对象而不是datetime对象保持一致而保留。

如果您希望处理更多的日期字符串格式,Python's strftime directives是一个很好的参考,您希望签出。

首先需要使用^{}将时间字符串转换为datetime对象。然后对datetime对象调用.toordinal()

>>> from datetime import datetime
>>> date = datetime.strptime('2010-03-01', '%Y-%M-%d')
>>> date.toordinal()
733773

最好创建一个函数来实现这一点:

def convert_date_to_ordinal(date):
    return datetime.strptime(date, '%Y-%M-%d').toordinal()

convert_date_to_ordinal('2010-03-01')
#returns: 733773

相关问题 更多 >

    热门问题