1

日付列と時刻列を持つ CSV ファイルがあります。時間列は GMT (24 時間形式) であり、EST に変換する必要があります。夏時間なので、ここ東海岸の時差は現在 -5 時間です。CSV ファイルを読み取り、列のすべての時間から 5 時間を差し引く方法が必要です。私の最大の問題は、コンバージョンの多くが 2 日間かかることです。たとえば、「Thu Nov 7,0:30」は「Thu Nov 6,19:30」に変換されます。日付と時刻が前日に変換される場合は、CSV の日付を変更する必要があります。私が使用しているデータのサンプルは次のとおりです。


日付,時間 11月6日水曜日,0
:01 11月6日水曜日,0:30 11月6
日 水曜日,
8:00 11月6

水曜日,13:30 11月7日木曜日,0:30 11月7日木曜日,2:
00 11
月7日木曜日,5日:00 11月7日(木),15
:30
11月7日(木),20:00(
金),11 月8日
(金),0:30(金),11月8日(金),2:30(
金),11月8日(金),6:45
(金 ),11月8日,13日
(金): 30 11月8日
(金)17:00 11月9日(土
)1:30 11月9日(
土 )5:30
11月10日(日)21:45
11月10日(日)23:50

-5 時間の変換後にデータをどのように表示するかを次に示します。


日時
11月5 日(水
)19:01 11月6日
(水)19:30 11月6日(水)3:00
11月6日(水)11月6日
(木)19:30 11月6日(木
)21:00 11月7 日
(木) :00 11月7
日(
木),10:30 11月7日(木),15:00(
金),11月7日(金),19:30(
金),21:30(金),11 月8日(金),1
:45(
金),11月8日(金),4:30(
金),11月8日: 30 11月8日
(金)12:00 11月8日(土
)20:30 11月9日( 土)0:30 11月10日(日) 16:45 11月10日(日)18:50


DST のステータス (-4 時間または -5 時間) を判断するコードがあります。CSV ファイルの読み取り、時間列の反復処理、正しい時間数の減算、および時間/日付が前日に変更された場合の対応する日付の変更についてサポートが必要です。私はPython 2.7.5を使用しています

ご協力ありがとうございました!!

4

2 に答える 2

2

datetime と pytz を使用する必要があります。従うべき手順は次のとおりです。

まず、明らかに、csv を解析し、すべての行を単純な datetime オブジェクト (タイムゾーンなし) に読み込みます。

次に、datetime オブジェクトにタイムゾーンを認識させます。

src_tz = pytz.timezone('GMT')
dt = src_tz.localize(dt)

次に、それらを必要なタイムゾーンに変換します。

dst_tz = pytz.timezone('EST')
dt = dt.astimezone(dst_tz)
于 2013-11-12T01:46:38.877 に答える