将日期转换为序数python?

时间:2016-10-04 07:49:32

标签: python datetime

我想转换 2010-03-01至733832

我刚刚找到了这个基本代码

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

来自this

但我想要更像

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

提前致谢

3 个答案:

答案 0 :(得分:4)

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

>>> 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是您想要查看的一个很好的参考。

答案 1 :(得分:4)

像这样:

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

答案 2 :(得分:2)

您需要先使用strptime()将时间字符串转换为public void UpdateRepack(RepackRequest repack) { // Do needed operations // Remove this line. You are supposed to save changes in the end using _uow.Save(); -> _context.Save(); } 对象。然后在datetime对象

上调用.toordinal()
datetime

创建一个实现此目的的函数更好:

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