DateTime-Lite

 view release on metacpan or  search on metacpan

README-ja-JP.md  view on Meta::CPAN


        my $dt = DateTime::Lite->now( locale => 'en' );    # 単純な形式
        my $dt = DateTime::Lite->now( locale => 'en-GB' ); # 単純な形式
        # より複雑な形式にも対応
        my $dt = DateTime::Lite->now( locale => 'he-IL-u-ca-hebrew-tz-jeruslm' );
        my $dt = DateTime::Lite->now( locale => 'ja-Kana-t-it' );
        my $dt = DateTime::Lite->now( locale => 'ar-SA-u-nu-latn' );

    ロケールデータは、[DateTime::Locale::FromCLDR](https://metacpan.org/pod/DateTime%3A%3ALocale%3A%3AFromCLDR)が[Locale::Unicode::Data](https://metacpan.org/pod/Locale%3A%3AUnicode%3A%3AData)を通じて動的に解決します。そのた...

    さらに、ロケールタグに[Unicode timezone extension](https://metacpan.org/pod/Locale%3A%3AUnicode#Unicode-extensions)(`-u-tz-`)が含まれており、かつコンストラクタに明示的な`time_zone`引数が渡されていなã...

        # -u-tz-jeruslm 拡張から、time_zone はC<Asia/Jerusalem> と推定される
        my $dt = DateTime::Lite->now( locale => 'he-IL-u-ca-hebrew-tz-jeruslm' );
        say $dt->time_zone;            # Asia/Jerusalem
        say $dt->time_zone_long_name;  # Asia/Jerusalem

    明示的な`time_zone`引数は、常にロケール拡張より優先されます。

- 通常の処理ではdie()しないこと

    [Module::Generic](https://metacpan.org/pod/Module%3A%3AGeneric) / [Locale::Unicode](https://metacpan.org/pod/Locale%3A%3AUnicode)のエラー処理方針に従い、`DateTime::Lite`は通常のエラーパスで`die()`を呼び出しません。

    代わりに[DateTime::Lite::Exception](https://metacpan.org/pod/DateTime%3A%3ALite%3A%3AException)オブジェクトを設定し、スカラコンテキストでは`undef`、リストコンテキストでは空リストを返します。

    ただし、エラー時にこのモジュールを本当に`die`させたい場合は、オブジェクト生成時に真の値を持つ`fatal`オプションを渡すことができます。

# DateTimeとの既知の相違点

- バリデーション

    `DateTime`はコンストラクタのバリデーションに[Specio](https://metacpan.org/pod/Specio) / [Params::ValidationCompiler](https://metacpan.org/pod/Params%3A%3AValidationCompiler)を使用します。`DateTime::Lite`は同等のチェã...

- warnings::register の濫用なし

    `DateTime::Lite`は`warnings::enabled`を一貫して使用し、ユーザー向けの出力に`warnings::register`の仕組みへ依存しません。

# 未実装のメソッド

現時点ではありません。[DateTime](https://metacpan.org/pod/DateTime)APIに存在するメソッドで、このモジュールに不足しているものを見つけた場合は、報告してください。

# CONSTRUCTORS

## new

受け付けるパラメータは次のとおりです。

- `year`(必須)
- `month`
- `day`
- `hour`
- `minute`
- `second`
- `nanosecond`
- `time_zone`

    日時に使用するタイムゾーンです。次の形式を受け付けます。

    - `Asia/Tokyo`のようなゾーン名文字列、`+09:00`のような固定オフセット文字列、`UTC`、`floating`、または`local`。
    - [DateTime::Lite::TimeZone](https://metacpan.org/pod/DateTime%3A%3ALite%3A%3ATimeZone)オブジェクト。
    - キーがそのまま["new" in DateTime::Lite::TimeZone](https://metacpan.org/pod/DateTime%3A%3ALite%3A%3ATimeZone#new)に渡されるハッシュリファレンス。これにより、文字列形式では指定できないオプションをæ¸...

            time_zone => { name => 'JST', extended => 1 }
            time_zone => { latitude => 35.658558, longitude => 139.745504 }

    省略された場合で、`locale`引数に`he-IL-u-ca-hebrew-tz-jeruslm`のようなBCP47 `-u-tz-`拡張が含まれているときは、対応するIANAの正規タイムゾーンが自動的に解決されます。どちらも指定されてã...

- `locale`

    Unicode CLDR(Common Locale Data Repository)およびBCP47で定義される、有効な任意のロケールです。[Locale::Unicode](https://metacpan.org/pod/Locale%3A%3AUnicode)を参照してください。

- `formatter`
- `fatal`

成功時には新しいオブジェクトを返します。失敗時には[error](https://metacpan.org/pod/DateTime%3A%3ALite%3A%3AException)を設定し、スカラコンテキストでは`undef`、リストコンテキストでは空リストをè¿...

## from\_day\_of\_year

    my $dt2 = DateTime::Lite->from_day_of_year(
        year        => 2026,
        day_of_year => 100,
        time_zone   => 'UTC',
        locale      => 'fr-FR',
    );

年と年内通算日(1-366)からオブジェクトを構築します。

成功時には新しいオブジェクトを返します。失敗時には[error](https://metacpan.org/pod/DateTime%3A%3ALite%3A%3AException)を設定し、スカラコンテキストでは`undef`、リストコンテキストでは空リストをè¿...

## from\_epoch

    my $dt = DateTime::Lite->from_epoch(
        epoch     => 1775769030,
        time_zone => 'Asia/Tokyo',
        locale    => 'ja-JP',
        formatter => $formatter,
    );

ユニックスエポック値(整数または浮動小数点数)からオブジェクトを構築します。整数でない値は、最も近いマイクロ秒に丸められます。

`time_zone`、`locale`、`formatter`パラメータを受け付けます。

返されるオブジェクトは`UTC`タイムゾーンになります。

`time_zone`引数を指定した場合、それはオブジェクトの生成_後_に適用されます。したがって、渡されたエポック値は常にUTCタイムゾーンの値として設定されます。

例:

    my $dt = DateTime::Lite->from_epoch(
        epoch     => 0,
        time_zone => 'Asia/Tokyo'
    );
    say $dt; # Asia/TokyoはUTCから+09:00のため、1970-01-01T09:00:00を出力します。
    $dt->set_time_zone('UTC');
    say $dt; # 1970-01-01T00:00:00を出力します。

成功時には新しいオブジェクトを返します。失敗時には[error](https://metacpan.org/pod/DateTime%3A%3ALite%3A%3AException)を設定し、スカラコンテキストでは`undef`、リストコンテキストでは空リストをè¿...

## from\_object

    my $dt1 = DateTime->new;



( run in 2.693 seconds using v1.01-cache-2.11-cpan-0bb4e1dffa6 )