2017-04-20 6 views
2

ナイーブなdatetimeオブジェクトとタイムゾーンを認識するdatetimeオブジェクトを比較しようとしています。タイムゾーン形式のファイルをPythonの素朴なdatetimeオブジェクトに渡す方法

私は変更する必要があります。

lastDate = start_date + ' ' + errorTime 
lastDate = datetime.strptime(lastDate, '%Y-%m-%d %H:%M:%S') 
time_diff = lastDate - FirstDate 
TypeError: can't compare offset-naive and offset-aware datetimes 

はまず...私は私の2つの日時オブジェクトのtzinfoのを確認...

>>>FirstDate.tzinfo 
>>>tzfile(u'/usr/share/zoneinfo/Europe/London') 

>>>lastDate.tzinfo 
>>> 

lastDateがTZ認識していないので、これが期待されている:

は当初、私はこのエラーを取得しました。

私はその後pytzを輸入し、ナイーブlastDate DateTimeオブジェクトに変換:どのように私はナイーブを与えない...

>>>FirstDate.tzinfo 
>>>tzfile(u'/usr/share/zoneinfo/Europe/London') 

>>>lastDate.tzinfo 
>>><DstTzInfo 'Europe/London' GMT0:00:00 STD> 

私は困惑:私が持っている

lastDate = start_date + ' ' + errorTime 
lastDate = datetime.strptime(lastDate, '%Y-%m-%d %H:%M:%S') 
lastDate = pytz.timezone('Europe/London').localize(lastDate) 
time_diff = lastDate - FirstDate 
TypeError: Timestamp subtraction must have the same timezones or no timezones 

が再びタイムゾーンの確認をdatetimeオブジェクトlastDate tzfile?

注:私はdatetimeオブジェクトFirstDate意識TZに一致するようにナイーブdatetimeオブジェクトlastDateを変換する必要があります。私はFirstDateのtzを修正することはできません。

答えて

0

既存のdatetimeからタイムゾーンを取得し、別のタイムゾーンに適用できるはずです。試してみてください:あなたが後にしている何をすべき

lastDate = pytz.timezone('Europe/London').localize(lastDate) 

lastDate = FirstDate.tzinfo.localize(lastDate) 

の代わりに。

+0

こんにちは@Stephen私はこれを試して、今私は次のエラーが表示されます: 'AttributeError: 'tzfile'オブジェクトには属性 'localize''がありません – nrs90

関連する問題