2015-12-24 133 views
0

我有一些我需要處理的IIS(Internet信息服務)日誌,就像Apache Web日誌,如果你是一個Linux服務器的人。IIS日誌時間戳時區

的網絡日誌的開頭爲:

49.76.xx.xx - - [01/Jun/2015:00:01:08 -0500] "GET... 

而且我很好奇的時間戳,[01/Jun/2015:00:01:08 -0500],是什麼0500在這個場景是什麼意思?是不是像時區或偏移量基於this python文檔?

這是我迄今所做的,但它不工作:

from datetime import datetime 
text = "01/Jun/2015:00:01:08 +0500" 
print datetime.strptime(text, '%d/%b/%Y:%H:%M:%S %z') 

這裏是錯誤消息。

--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-10-e243ceb157eb> in <module>() 
     1 from datetime import datetime 
     2 text = "01/Jun/2015:00:01:08 +0500" 
----> 3 print datetime.strptime(text, '%d/%b/%Y:%H:%M:%S %z') 

/opt/local/anaconda/lib/python2.7/_strptime.pyc in _strptime(data_string, format) 
    315     del err 
    316     raise ValueError("'%s' is a bad directive in format '%s'" % 
--> 317          (bad_directive, format)) 
    318    # IndexError only occurs when the format string is "%" 
    319    except IndexError: 

ValueError: 'z' is a bad directive in format '%d/%b/%Y:%H:%M:%S %z' 
+0

'-0500'是*時區偏移*,這意味着這個特定的地方時間比UTC晚5個小時。不要將* offset *與* time zone *混淆,因爲許多時區會爲夏令時和其他異常更改其偏移量。另外,要小心 - 在一種情況下顯示「-0500」,在另一種情況下顯示「+ 0500」。彼此相距10小時。 –

回答

0

%z代表timezone..you不能.strptime()使用%z ..你可以考慮使用pytz模塊時區