Class SimpleFormat
Java の SimpleDateFormat と同じような使い勝手で, ユーザー定義の書式を扱うことができるクラスです. 日付・時刻のパターンは www.php.net/manual/function.date.php date() の一部を採用しています.
- Y: 年 (4桁固定)
- m: 月 (2桁固定)
- n: 月 (1~2桁)
- d: 日 (2桁固定)
- j: 日 (1~2桁)
- H: 時 (2桁固定)
- G: 時 (1~2桁)
- i: 分 (2桁固定)
- s: 秒 (2桁固定)
以下は, このクラス独自の拡張パターンです.
- f: 分 (1~2桁)
- b: 秒 (1~2桁)
- E: 曜日 (後述)
"2012年5月21日(月)" のように曜日を含む書式の入出力を行う場合は, コンストラクタの第 2 引数に曜日文字列の一覧を指定してください. 以下に例を示します.
$format = new SimpleFormat("Y年n月j日(E)", array("日", "月", "火", "水", "木", "金", "土"));
第 2 引数を省略した場合はデフォルト値として array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") が適用されます.
パターンを繋げて記述する場合は (例: "Ymd_His" など) 必ず固定長のパターンを使用してください. 可変長 (n, j, G など) のパターンは常に最長一致でマッチングするため, 繋げて記述した際にパースに失敗する可能性があります.
このクラスは, 月の文字列表記 (例えば "Jan", "Feb" など) のためのパターンをサポートしません. そのようなフォーマットが必要となった場合は, 独自の Format クラスを定義する必要があります.
パースまたは書式化を行う際, 情報が足りない場合はデフォルト値が指定されます. 年・月・日については現在の日付, 時・分・秒については 0 が適用されます. 具体的には, 以下のような状況が相当します.
- パースする際, オブジェクトを構成するために必要な情報をパターン文字列が網羅していなかった. (例: "m/d" というパターンをパースした場合, 「年」の情報がパターン文字列に含まれていないため, 現在の年が適用されます)
- 時間オブジェクトを書式化する際に, パターン文字列に含まれるフィールドを そのオブジェクトが持っていなかった. (例: "Y/m/d H:i:s" というパターンで Date オブジェクトを書式化した場合, Date は時刻の情報を持たないため, 時刻部分は 00:00:00 となります.)
PHP の date() 関数の実装と同様に, バックスラッシュをつけることでパターン文字列が展開されるのを抑制することができます.
このクラスはイミュータブルです. 一つのオブジェクトを複数の箇所で使いまわすことが出来ます.
- Peach\DT\SimpleFormat implements Peach\DT\Format
public
|
#
__construct( string $pattern, array $dayList = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") )
指定されたパターン文字列で SimpleFormat を初期化します. |
public
string
|
|
public
|
|
public
|
|
public
|
|
public
string
|
|
public
string
|
|
public
string
|