名前

Mojo::Date - HTTP 1.1 日付コンテナ

使い方

use Mojo::Date;

# 解析
my $date = Mojo::Date->new('Sun, 06 Nov 1994 08:49:37 GMT');
say $date->epoch;

# 構築
my $date = Mojo::Date->new(time + 60);
say "$date";

説明

Mojo::Dateは、 RFC 7230RFC 7231RFC 3339 に基づいた HTTPの日付と時刻の関数を実装しています。

属性

Mojo::Dateは次の属性を実装しています。

epoch

my $epoch = $date->epoch;
$date     = $date->epoch(784111777);

エポック秒。デフォルトは、現在の時刻です。

メソッド

Mojo::DateMojo::Baseのすべてのメソッドを継承していて、 次の新しいメソッドを実装しています。

new

my $date = Mojo::Date->new;
my $date = Mojo::Date->new('Sun Nov  6 08:49:37 1994');

新しいMojo::Dateオブジェクトを構築します。必要であれば「parse」メソッドで、解析します。

parse

$date = $date->parse('Sun Nov  6 08:49:37 1994');

パース可能なフォーマットは以下のもの含みます。

# Epoch
say Mojo::Date->new('784111777')->epoch;
say Mojo::Date->new('784111777.21')->epoch;

# RFC 822/1123
say Mojo::Date->new('Sun, 06 Nov 1994 08:49:37 GMT')->epoch;

# RFC 850/1036
say Mojo::Date->new('Sunday, 06-Nov-94 08:49:37 GMT')->epoch;

# Ansi C asctime()
say Mojo::Date->new('Sun Nov  6 08:49:37 1994')->epoch;

# RFC 3339
say Mojo::Date->new('1994-11-06T08:49:37Z')->epoch;
say Mojo::Date->new('1994-11-06T08:49:37')->epoch;
say Mojo::Date->new('1994-11-06T08:49:37.21Z')->epoch;
say Mojo::Date->new('1994-11-06T08:49:37+01:00')->epoch;
say Mojo::Date->new('1994-11-06T08:49:37-01:00')->epoch;

to_datetime

my $str = $date->to_datetime;

RFC 3339の日付と時刻を描画する。

# "1994-11-06T08:49:37Z"
Mojo::Date->new(784111777)->to_datetime;

# "1994-11-06T08:49:37.21Z"
Mojo::Date->new(784111777.21)->to_datetime;

to_string

my $str = $date->to_string;

HTTPメッセージのために適切に日付を描画します。

# "Sun, 06 Nov 1994 08:49:37 GMT"
Mojo::Date->new(784111777)->to_string;

演算子

Mojo::Dateは次の演算子をオーバーロードしています。

ブール

my $bool = !!$date;

いつでも真。

文字列化

my $str = "$date";

to_stringのエイリアス。

参考

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

(Mojolicious 8.1を反映。2019年5月14日)