在Python上将字符串转换为日期类型

2024-04-24 21:09:26 发布

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

我有这个绳子:

'2012-02-10' # (year-month-day)

我需要它作为日期类型来使用日期函数isoweekday()

有人知道我如何把这个字符串转换成日期吗?


Tags: 函数字符串类型yearday绳子monthisoweekday
3条回答
from datetime import datetime

a = datetime.strptime(f, "%Y-%m-%d")

你可以用^{}

示例:

>>> from datetime import datetime
>>> datetime.strptime('2012-02-10' , '%Y-%m-%d')
datetime.datetime(2012, 2, 10, 0, 0)
>>> _.isoweekday()
5

您可以找到包含所有strptime指令here的表。


如果.isweekday() == 6,要增加2天,可以使用^{}

>>> import datetime
>>> date = datetime.datetime.strptime('2012-02-11' , '%Y-%m-%d')
>>> if date.isoweekday() == 6:
...     date += datetime.timedelta(days=2)
... 
>>> date
datetime.datetime(2012, 2, 13, 0, 0)
>>> date.strftime('%Y-%m-%d')   # if you want a string again
'2012-02-13'

虽然这个问题似乎是按照OP的请求回答的,但是没有一个答案给出了一个获得datetime.date对象而不是datetime.datetime对象的好方法。所以对于那些搜索并找到这条线索的人来说:

datetime.date没有.strptime方法;请使用datetime.datetime上的方法,然后调用.date()上的方法来接收datetime.date对象。

就像这样:

>>> from datetime import datetime
>>> datetime.strptime('2014-12-04', '%Y-%m-%d').date()
datetime.date(2014, 12, 4)

相关问题 更多 >