Perlゼミ

  1. Perl
  2. モジュール
  3. here

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

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関数を使用します。

Perlの書籍
  • 初めてのPerl 第7版

    Perl入門 定番の一冊
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
  • 詳説 正規表現

    正規表現の詳細な解説
  • Perlの書籍販売 14冊 »
自己紹介
木本裕紀(きもとゆうき)

Twitter

フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎
Perlの求人広告募集中