在Python中将字符串转换为Datetime

时间:2012-02-29 18:07:04

标签: python string date type-conversion

我有这个字符串:

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

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

有谁知道如何将此字符串转换为日期?

5 个答案:

答案 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)

使用datetime.datetime.strptime

>>> 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)
相关问题