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) »
「パソコン・インターネット」カテゴリの記事
- apt-cacher-ng と cli.github.com(2026.06.20)
- wine で LINEを使う(2026.04.10)
- apt-cacher-ng と ftp.jp.debian.org(2026.03.25)
- minicom の右枠線がズレる問題へのパッチと gdb の話(2026.01.04)
- Bluefish 関連ページ 復活(2025.12.29)
« exFAT が pmount できなくなっていた理由(Debian) | トップページ | Bluetooth USBアダプタとヘッドセットをペアリングする(bluez 5) »


コメント