我想將一個日期字符串轉換爲一個時間。Python的時間到了
該字符串是:「星期一,2008年11月17日01:45:32 +0200」,我需要計算出它有多少天。
我已經成功轉換使用日期:
>>> time.strptime("Mon, 17 Nov 2008 01:45:32 +0200","%a, %d %b %Y %H:%M:%S +0200")
(2008, 11, 17, 1, 45, 32, 0, 322, -1)
出於某種原因,%Z給了我爲+0200一個錯誤,但它不管那麼多了。
我可以用得到當前時間:
>>> time.localtime()
(2009, 2, 3, 19, 55, 32, 1, 34, 0)
,但我怎麼能減去從另一個足不出戶儘管在列表中的每個項目,做手工?
代碼片段不正確。你需要從日期時間,而不是日期(或使用日期對象,而不是日期時間對象)導入'日期時間'。 – 2009-02-04 09:08:02
如果輸入日期字符串不在本地時區中,結果不正確。你需要[我的答案](http://stackoverflow.com/a/25426694/4279)中的[知道的日期時間對象],而不是某種其他方式來跟蹤給定的UTC偏移量,例如[`email.utils.parsedate_tz()` - (http://stackoverflow.com/a/510638/4279)。 此外, `tdelta.days`可以給出令人驚訝的結果,例如, `timedelta(seconds = -5).days == -1`; `tdelta/timedelta(1)`可能是 改爲使用(或者它在舊Python版本中的模擬: `timedelta(秒= -5).total_seconds()/ 86400`)。 – jfs 2014-08-21 12:46:04
如果`t1`和`t2`具有不同的UTC偏移量,例如如果`t1`是標準時間,`t2`是夏令時(`is_dst = 1`),那麼結果可能也是錯誤的。如果`t1`和`t2`位於DST轉換的相反側,就會發生](http://stackoverflow.com/a/25427822/4279)。 – jfs 2014-08-25 18:12:18