我有这个字符串:
'2012-02-10' # (year-month-day)
我需要它作为日期类型使用日期函数isoweekday()
。
有谁知道如何将此字符串转换为日期?
答案 0 :(得分:46)
虽然看起来这个问题是根据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)
答案 1 :(得分:41)
您可以使用datetime.strptime()
示例:
>>> 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天,您可以使用timedelta()
:
>>> 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'
答案 2 :(得分:6)
from datetime import datetime
a = datetime.strptime(f, "%Y-%m-%d")
答案 3 :(得分:3)
>>> import datetime
>>> date = datetime.datetime.strptime('2012-02-10', '%Y-%m-%d')
>>> date.isoweekday()
5
答案 4 :(得分:3)
>>> from datetime import datetime
>>> year, month, day = map(int, my_date.split('-'))
>>> date_object = datetime(year, month, day)