« exFAT が pmount できなくなっていた理由(Debian) | トップページ | Bluetooth USBアダプタとヘッドセットをペアリングする(bluez 5) »

2019年8月15日 (木)

Perl でGMT → JST の時差を直す

MovableType 形式でエクスポートされたブログデータをインポートし、公開前に確認したところ、どうも投稿時刻がおかしい。

元データのWordPress エクスポート XML では、時刻の後に +0000 の文字列が。これは GMT で時刻を書き出しているな。

MovableType 形式の時刻をいじる方が楽そうなので、そちらに挑戦。

Perl で時刻表記をいじる方法を調べると、Time::Piece を使う方法が見つかった。

時刻表記の読み書きだけでなく、9時間進める演算も必要なので、この場合は DateTime よりも便利らしい。

使ったスクリプトを書いておく。標準入力に元データを入れ、標準出力に変換後のデータを吐く。

#!/usr/bin/perl

use Time::Piece;
use Time::Seconds;

my $gmtTime, $jstTime;

while (<STDIN>) {
   if ($_ =~ /^DATE: /) {
      chomp($_);
      $gmtTime = Time::Piece->strptime($_, 'DATE: %m/%d/%Y %H:%M:%S');
      $jstTime = $gmtTime + ONE_HOUR * 9;

      print "DATE: ",$jstTime->mdy("/")," ", $jstTime->hms,"\n";
   } else {
      print $_;
   }
}

« exFAT が pmount できなくなっていた理由(Debian) | トップページ | Bluetooth USBアダプタとヘッドセットをペアリングする(bluez 5) »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« exFAT が pmount できなくなっていた理由(Debian) | トップページ | Bluetooth USBアダプタとヘッドセットをペアリングする(bluez 5) »

2026年7月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ