Time::Local - 時刻情報をエポック秒に変換



  1. Perl




  2. モジュール



  3. here

Time::Localモジュールはlocaltime関数gmtime関数とは逆向きの日付・時刻の変換を行うためのモジュールです。

日付と時刻(ローカル時間)をエポック秒に変換するにはTime::Localモジュールのtimelocal関数を使用します。

use Time::Local 'timelocal';
my $sec_from_epoch = timelocal($sec, $min, $hour, $mday, $month, $year);

日付と時刻(協定世界時)をエポック秒に変換するにはTime::Localモジュールのtimegm関数を使用します。

my $sec_from_epoch = timegm($sec, $min, $hour, $mday, $month, $year);

日付・時刻に関する一般的な情報については、以下を参考にしてください。

Time::Localのサンプル

Time::Localモジュールのサンプルです。

日付と時刻(ローカル時間)をエポック秒に変換するサンプルです。
use strict;
use warnings;

use Time::Local 'timelocal';

print "(1)日付と時刻(ローカル時間)をエポック秒に変換する。\n";
my $sec = 10;
my $min = 30;
my $hour = 12;
my $mday = 1;

# 1月は0、2月は1 のようになるので1を引く。
my $month = 10 -1;

# Perlでは年は1900年からの日数で扱うので1900を引く
my $year = 2000 - 1900;

my $sec_from_epoch = timelocal($sec, $min, $hour, $mday, $month, $year);
print $sec_from_epoch;
日付と時刻(ローカル時間)をエポック秒に変換する
my $sec = 10;
my $min = 30;
my $hour = 12;
my $mday = 1;

# 1月は0、2月は1 のようになるので1を引く。
my $month = 10 -1;

# Perlでは年は1900年からの日数で扱うので1900を引く
my $year = 2000 - 1900;

my $sec_from_epoch = timelocal($sec, $min, $hour, $mday, $month, $year);

 日付と時刻(ローカル時間)をエポック秒に変換するにはTime::Localモジュールのtimelocal関数を使用します。

 timelocal関数は組み込み関数のlocaltimeとまったく逆の変換を行います。 timelocal関数に渡す引数は、localtime行われる変換規則と同じである必要があります。

 月は0から始まるので、実際の月から1を引いた値を用いる必要があります。年は1900年からの年数なので1900を引く必要があります。

 また日付と時刻(協定世界時)をエポック秒に変換するには、Time::Localモジュールのtimegm関数を使用します。

timegm関数を使ったサンプル
use strict;
use warnings;

use Time::Local 'timegm';

print "(1)日付と時刻(協定世界時)をエポック秒に変換する。\n";
my $sec = 10;
my $min = 30;
my $hour = 12;
my $mday = 1;

# 1月は0、2月は1 のようになるので1を引く。
my $month = 10 - 1;

# Perlでは年は1900年からの日数で扱うので1900を引く
my $year = 2000 - 1900;

my $sec_from_epoch = timegm($sec, $min, $hour, $mday, $month, $year);
print $sec_from_epoch;
日付と時刻(協定世界時)をエポック秒に変換する。
use Time::Local 'timegm';

my $sec = 10;
my $min = 30;
my $hour = 12;
my $mday = 1;

# 1月は0、2月は1 のようになるので1を引く。
my $month = 10 - 1;

# Perlでは年は1900年からの日数で扱うので1900を引く
my $year = 2000 - 1900;

my $sec_from_epoch = timegm($sec, $min, $hour, $mday, $month, $year);

 日付と時刻(協定世界時)をエポック秒に変換するには、timegm関数を使用します。

 timegm関数は組み込み関数のgmtimeとまったく逆の変換を行います。timegm関数に渡す引数は、gmtime行われる変換規則と同じである必要があります。

 月は0から始まるので、実際の月から1を引いた値を用いる必要があります。年は1900年からの年数なので1900を引く必要があります。

 また日付と時刻(ローカル時間)をエポック秒に変換するには、Time::Localモジュールのtimelocal関数を使用します。