我对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?我该如何解决这个问题?
最后,我试图减去当前日期给出的变量日期,但在转换字符串之前我无法做到这一点。
感谢您的帮助!
答案 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')