PerlでローカルタイムからUNIXタイムスタンプに変換する方法
2022-01-03 18:40:58
Perlスクリプトで時間情報を解決する必要がある場合、日付と時間を表現して処理する方法は2つあります。1つは読みやすい時間表現(例:"Sat Mar 14 10:14:05 EDT 2015")で、もう1つはUNIXタイムスタンプ("新時代"ともいう)を使用し、1970年1月1日から経過した秒数として表現する方法です。それぞれの方法には利点と欠点があり、また、ニーズによっては、あるフォーマットから別のフォーマットへの変換が必要になる場合もあります。
PerlでローカルタイムとUNIXタイムスタンプを変換する
日付文字列からUNIX時間を取得するには、Date::Parseモジュールのstr2time()関数を使用します。この関数は、次のようなさまざまな形式を扱うことができます。
Sat Mar 14 10:14:05 EDT 2015
3/14/2015 10:14:05 -0400
14/Mar/15 10:14:05
14 Mar 15 10:14:05
use Date::Parse;
my $local_time = "Sat Mar 14 10:14:05 EDT 2015";
# 1426342445 will be stored in $unix_time
my $unix_time = str2time($local_time);
Date:Parseモジュールは、複数の言語(英語、フランス語、ドイツ語、イタリア語)およびタイムゾーンをサポートしています。例えば
use Date::Parse;
use Date::Language;
my $lang = Date::Language->new('French');
my $unix_time = $lang->str2time("12:14:05, Ago 16, 2014 (CEST)");
UNIXタイムスタンプをPerlで読みやすい日時に変換する
UNIXタイムスタンプを読みやすい形式に変換したい場合、UNIXタイムスタンプを9要素のリストに変換するlocaltime()関数を使用することができます。この関数はUNIXタイムスタンプを9つの要素からなるリストに変換し、返されたリストを使って必要な可読形式を作成します。以下はそのコードである。
# $sec, $min, $hour: seconds, minutes, hours
# $mday: day of the month (0-31)
# $mon: month, range 0 (January) to 11 (December)
# $year: year, the difference from 1900 (2015 is 2015-1900=115)
# $wday: day of the week, from 0 (Sunday) to 6 (Saturday)
# $yday: day of the year, in the range 0 to 364 (or 365 for leap years)
# $isdst: whether it is daylight saving time
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($unix_timestamp);
# necessary conversion of $mon and $year
$mon += 1;
$year += 1900;
print "Current time: $year-$mon - $mday $hour:$min:$sec\n";
関連
-
Perlの特殊記号の紹介
-
Perlの制御構造に関する学習ノート
-
Perlのサブルーチン 学習メモ
-
perlの文字列操作関数chompとchopの紹介
-
2つのファイルを比較し、データをフィルタリングするスクリプトコード(perlで実装されている
-
Linux/Unix で Perl モジュールをインストールする 2 つの方法
-
Perlにおけるchompとchopの違いの紹介
-
[解決済み] Perlで環境変数を設定するには?
-
[解決済み] Perlで日付/時刻をエポックタイム(1970年からのunix時間/秒)に変換するには?
-
[解決済み] スクリプトからの不正なヘッダー。不正なヘッダー=<!DOCTYPE html> です。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Perlのprint、printf、sprintfの使用例について説明します。
-
プロセス分析によるhttpsリクエストのチャールズベースクローリング
-
Sigilsを使ったPerl5とPerl6の比較
-
Perl関数(サブルーチン)学習ノート
-
perlを使ってデータテーブル(mysql)を分割し、データインスタンスを移行する。
-
Perlによるファイル操作の例
-
perl で書かれた乱数話法プログラム (rand random function)
-
プロポーズ用Perlコードの書き換えについて
-
Perl AnyEvent ウォッチャーの例
-
perl変数$/の使用方法について説明します。コンテキストが行モードのとき、$/は行を区別するものを定義します。