2

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

我有一个与 API 交互的 python 脚本(如果你好奇的话,是 RHN Satellite)。此 API 以字符串的形式返回日期,并且总是修剪前导 0。例如,2013 年 6 月 1 日或 12 年 10 月 9 日。我需要将此字符串转换为日期并确定它是一年中的哪一天。

这是我所知道的:

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?我该如何解决这个问题?

最后,我试图从当前日期中减去给定的变量日期,但在转换字符串之前我不能这样做。

谢谢您的帮助!

4

3 回答 3

2

如果您更改$y%y格式代码,此代码对我有用。

于 2013-06-24T18:35:45.347 回答
2

我认为你只是有一个错字,使用%y而不是$y

date = datetime.datetime.strptime(var, '%m/%d/%y')
于 2013-06-24T18:35:46.843 回答
2

更正$yto %y,我会使用format而不是strftime

from datetime import datetime
print format(datetime.strptime('5/2/13', '%m/%d/%y'), '%j')
于 2013-06-24T18:41:02.357 回答