2017-01-10 18 views
0

日付と時刻を異なるタイムゾーンのタイムスタンプに変換しようとしています。タイムゾーンを与える/考慮することによって、日付と時刻をタイムスタンプに変換するにはどうすればよいですか?

私は文字列2015-07-24T19:23:49+0530を持っているとします。 ここでは、年(2015)、月(07)、日付(24)、時(19)、分(23)、秒(49)を取得できます。

最後にタイムゾーン(530はISTを意味します)。

私の質問は次のとおりです。

  1. 上記の日付をタイムスタンプに変換するのはタイムゾーンによって異なりますか?
  2. はいの場合、上記の日付をUTCに変換するにはどうすればよいですか?

は、私が試した:

>>> dt = datetime(2015,03,19,20,18,15) 
>>> timestamp = (dt - datetime(1970, 1, 1)).total_seconds() 
>>> timestamp 
1426796295.0 

を上記のコードでは、ローカルタイムゾーンを検討しています。 正しいUTC時刻を取得するためにタイムゾーンをどこに渡すことができますか?

現地時間をUTCタイムスタンプに変換しようとしていません。 実際には、stringには他のタイムゾーンも含まれる可能性があります。 例:

2015-07-24T19:23:49+0530 #-> This is for Indian timezone. 
2015-07-24T19:23:49+0300 #-> This is Istanbul timezone. 

ただし、両方のタイムゾーンでUTCタイムスタンプが異なります。

私の質問は、タイムゾーンを考慮してUTCタイムスタンプを取得する方法です。 datetime.strptimeで文字列を解析するときに、タイムゾーンのため%zディレクティブを使用することができます

+0

での動作が保証されていないあなたは、矢印を確認しまします。http:// crsmithdev .com/arrow /それは多くの異なるフォーマットで扱われる日付の時間がかなり良いです – user783836

+0

@ user783836:ありがとう、私はチェックします – Harsha

答えて

0

from datetime import datetime 

ist = '2015-07-24T19:23:49+0300' 
dt_ist = datetime.strptime(ist, '%Y-%m-%dT%H:%M:%S%z') 

print(dt_ist.year, dt_ist.month, dt_ist.day, dt_ist.tzinfo) 
# 2015 7 24 UTC+03:00 

ディレクティブはしかし、すべてのマシン

+0

ありがとう@モーゼス。しかし、これは私にエラーを与えています - ValueError: 'z'はフォーマット '%Y-%m-%dT%H:%M:%S%z'の悪い指令です – Harsha

+0

残念なことにあなたのマシンでは動作しません –

+0

はこれですPythonのバージョン固有? – Harsha

関連する問題