Python:将字符串转换为日期的麻烦

时间:2013-06-24 18:33:36

标签: python datetime

我对Python有点新,并且有一个看似简单的问题。

我有一个与API交互的python脚本(RHN Satellite如果你好奇的话)。此API以字符串形式返回日期,并始终修剪前导0。例如,6/1/13或10/9/12。我需要将此字符串转换为日期并确定它所在的日期。

以下是我所知道的:

today = datetime.datetime.now()
print today.strftime('%j')

...将于今天(175)返回。这适用于日期时间对象,但我无法将API提供的字符串转换为实际日期。如果我使用:

date = datetime.datetime.strptime(var, '%m/%d/$y')

我收到错误:

ValueError: time data '5/2/13' does not match format '%m/%d/$y'

我猜测是因为它期待领先0?我该如何解决这个问题?

最后,我试图减去当前日期给出的变量日期,但在转换字符串之前我无法做到这一点。

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

如果您在格式代码中将$y更改为%y,则此代码适用于我。

答案 1 :(得分:2)

我认为您只是输入错误,请使用%y代替$y

date = datetime.datetime.strptime(var, '%m/%d/%y')

答案 2 :(得分:2)

更正$y%y,我使用format代替strftime

from datetime import datetime
print format(datetime.strptime('5/2/13', '%m/%d/%y'), '%j')