Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発なら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関数を使用します。

Qiitaで
「3分間Perlテキストクッキング」
という連載を始めました。
テキスト処理を題材にして、3分くらいで読める分量で、書いていきます。
文字コード、テキストデータ、コンピュータにおけるテキストの扱いなど、ソフトウェアの基礎の話題も
3分間Perlテキストクッキング