在Python上将字符串转换为日期类型[重复]

Posted

技术标签:

【中文标题】在Python上将字符串转换为日期类型[重复]【英文标题】:Convert string into Date type on Python [duplicate] 【发布时间】:2012-03-19 05:57:03 【问题描述】:

我有这个字符串:

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

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

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

【问题讨论】:

这对于也需要所有日期和时间的人会有所帮助:> datetime.datetime.strptime('2020-10-13 00:00:00', '%Y-%m-%d %H:%M:%S') 【参考方案1】:

你可以用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'

【讨论】:

@user1072627:而且.. 成功了吗? 这正是我所做的:if datetime.strptime(a, "%Y-%m-%d").isoweekday() == 6: PONTO_MOVIMENTO = a 再问一个问题...如何在约会中添加天数?例如,如果 isoweekdday() == 6,我需要在 2 天内增加日期。知道我该怎么做吗?再次感谢! 我发现已经在使用 timedelta。不过谢谢! @user1072627:是的,timdelta 是正确的工具。即使您已经找到它,我还是添加了一个示例。 :)【参考方案2】:
from datetime import datetime

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

【讨论】:

【参考方案3】:

使用datetime.datetime.strptime:

>>> import datetime
>>> date = datetime.datetime.strptime('2012-02-10', '%Y-%m-%d')
>>> date.isoweekday()
5

【讨论】:

【参考方案4】:
>>> from datetime import datetime
>>> year, month, day = map(int, my_date.split('-'))
>>> date_object = datetime(year, month, day)

【讨论】:

当我需要 datetime.date 对象而不是 datetime.datetime 对象时,我使用了类似的东西。不幸的是,datetime.date 没有 strptime() 方法。【参考方案5】:

虽然问题似乎已根据 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)

【讨论】:

这才是真正的答案 这应该是公认的答案 如果我将 datetime.datetime 对象转换为 datetime.date 对象,则 datetime.date 对象不适用于 datetime.timedelta() 方法。如果对象是 datetime.date,有没有办法进行日期计算(例如从日期中添加或减去天数)?

以上是关于在Python上将字符串转换为日期类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在swift 3中将字符串转换为日期类型[重复]

如何将字符串类型的日期转换为另一种日期格式。 |颤振 |飞镖[重复]

在sql中从字符串转换为日期时间[重复]

如何在matlab图形上将日期显示为字符串

将字符串转换为日期格式:DD-MMM-YYYY 到 Python 中的日期时间 [重复]

将字符串转换为日期时间错误 [重复]