public class SimpleDateFormat extends DateFormat
SimpleDateFormat は、日付のフォーマットと解析を、ロケールを考慮して行うための具象クラスです。これによって、フォーマット (日付 - テキスト)、解析 (テキスト - 日付)、および正規化を行うことができます。
SimpleDateFormat を使うと、日付時刻フォーマットのユーザー定義パターンを選択することによって、とりあえず使用を開始することができます。しかし、できるだけ、DateFormat の getTimeInstance、getDateInstance、または getDateTimeInstance で日付時刻フォーマッタを作成するようにしてください。これらのクラスメソッドはいずれも、デフォルトフォーマットパターンで初期化された日付時刻フォーマッタを返すことができます。フォーマットパターンは、必要に応じて、applyPattern メソッドを使って修正することができます。これらのメソッドの使い方については、DateFormat を参照してください。
日付/時刻フォーマットは日付/時刻パターン文字列で指定されます。日付/時刻パターン文字列内では、引用符で囲まれていない 'A' - 'Z' および 'a' - 'z' は、日付または時刻文字列のコンポーネントを表すパターン文字として解釈されます。テキストは単一引用符 (') で囲むことで解釈を回避できます。"''" は単一引用符を表します。ほかのすべての文字は解釈されず、フォーマット中に出力文字列へ単純にコピーされるか、解析中に入力文字列に対して一致させられます。
次のパターン文字が定義されます (ほかの 'A' - 'Z' および 'a' - 'z' のすべての文字は予約済み)。
パターン文字は、その数で正確な表現が決まるため、通常繰り返されます。
文字 日付または時刻のコンポーネント 表示 例 G紀元 Text ADy年 年 1996;96Y暦週の基準年 年 2009;09M月 月 July;Jul;07w年における週 Number 27W月における週 Number 2D年における日 Number 189d月における日 Number 10F月における曜日 Number 2E曜日の名前 Text Tuesday;Tueu曜日の番号 (1 = 月曜、...、7 = 日曜) Number 1a午前/午後 Text PMH一日における時 (0 - 23) Number 0k一日における時 (1 - 24) Number 24K午前/午後の時 (0 - 11) Number 0h午前/午後の時 (1 - 12) Number 12m分 Number 30s秒 Number 55Sミリ秒 Number 978zタイムゾーン 一般的なタイムゾーン Pacific Standard Time;PST;GMT-08:00Zタイムゾーン RFC 822 タイムゾーン -0800Xタイムゾーン ISO 8601 タイムゾーン -08;-0800;-08:00
Calendar がグレゴリオ暦の場合は、次に示す規則が適用されます。SimpleDateFormat は特定の世紀に合わせて短縮年を解釈する必要があります。この解釈は、SimpleDateFormat のインスタンスの生成前の 80 年以内から生成後の 20 年以内に日付を調整することによって行われます。たとえば、「MM/dd/yy」のパターンと 1997 年 1 月 1 日に生成された SimpleDateFormat のインスタンスを使うと、「01/11/12」という文字列は 2012 年 1 月 11 日と解釈され、「05/04/64」という文字列は 1964 年 5 月 4 日と解釈されます。解析中は、Character.isDigit(char) で定義された 2 桁を含む文字列のみがデフォルトの世紀に解析されます。1 桁の文字列、3 桁以上の文字列、あるいは数値以外を含む 2 桁の文字列 (-1 など) といったその他の数値文字列は、文字どおりに解釈されます。つまり、同じパターンを用いて「01/02/3」または「01/02/003」を解析すると、A.D. 3 年 1 月 2 日となります。同様に、「01/02/-3」は B.C. 4 年 1 月 2 日と解析されます。
'Y' が指定され、カレンダが暦週の基準年をサポートしていない場合は、代わりにカレンダの年 ('y') が使用されます。getCalendar().isWeekDateSupported() を呼び出すと、暦週の基準年のサポートをテストできます。
GMTOffsetTimeZone:
GMT Sign Hours : Minutes
Sign: one of
+ -
Hours:
Digit
Digit Digit
Minutes:
Digit Digit
Digit: one of
0 1 2 3 4 5 6 7 8 9
時は 0 - 23、分は 00 - 59 です。フォーマットはロケールに依存せず、数字は Unicode 標準の Basic Latin ブロックの数字である必要があります。
解析には、RFC 822 タイムゾーンも受け入れられます。
RFC822TimeZone:
Sign TwoDigitHours Minutes
TwoDigitHours:
Digit Digit
TwoDigitHours は 00 - 23 です。ほかの定義は一般的なタイムゾーンと同様です。
解析には、一般的なタイムゾーンも受け入れられます。
ISO8601TimeZone:
OneLetterISO8601TimeZone
TwoLetterISO8601TimeZone
ThreeLetterISO8601TimeZone
OneLetterISO8601TimeZone:
Sign TwoDigitHours
Z
TwoLetterISO8601TimeZone:
Sign TwoDigitHours Minutes
Z
ThreeLetterISO8601TimeZone:
Sign TwoDigitHours : Minutes
Z
ほかの定義は一般的なタイムゾーンや RFC 822 タイムゾーンと同様です。
フォーマットでは、GMT からのオフセット値が 0 の場合に "Z" が生成されます。パターン文字の数が 1 の場合は、1 時間の端数は無視されます。たとえば、パターンが "X" で、タイムゾーンが "GMT+05:30" の場合、"+05" が生成されます。
解析では、UTC タイムゾーン指示子として "Z" が解析されます。一般的なタイムゾーンは受け入れられません。
パターン文字の数が 4 以上の場合は、SimpleDateFormat が構築されたり、パターンが適用されたりすると、IllegalArgumentException がスローされます。
SimpleDateFormat はローカライズされた日付/時刻パターン文字列もサポートします。この文字列では、前述したパターン文字はロケール依存のほかの文字パターンに置き換えられます。
SimpleDateFormat はパターン文字以外のテキストのローカライズを行いません。このローカライズは、クラスのクライアントによります。
日付/時刻パターン 結果 "yyyy.MM.dd G 'at' HH:mm:ss z"2001.07.04 AD at 12:08:56 PDT"EEE, MMM d, ''yy"Wed, Jul 4, '01"h:mm a"12:08 PM"hh 'o''clock' a, zzzz"12 o'clock PM, Pacific Daylight Time"K:mm a, z"0:08 PM, PDT"yyyyy.MMMMM.dd GGG hh:mm aaa"02001.July.04 AD 12:08 PM"EEE, d MMM yyyy HH:mm:ss Z"Wed, 4 Jul 2001 12:08:56 -0700"yyMMddHHmmssZ"010704120856-0700"yyyy-MM-dd'T'HH:mm:ss.SSSZ"2001-07-04T12:08:56.235-0700"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"2001-07-04T12:08:56.235-07:00"YYYY-'W'ww-u"2001-W27-3
日付フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
DateFormat.FieldAM_PM_FIELD, calendar, DATE_FIELD, DAY_OF_WEEK_FIELD, DAY_OF_WEEK_IN_MONTH_FIELD, DAY_OF_YEAR_FIELD, DEFAULT, ERA_FIELD, FULL, HOUR_OF_DAY0_FIELD, HOUR_OF_DAY1_FIELD, HOUR0_FIELD, HOUR1_FIELD, LONG, MEDIUM, MILLISECOND_FIELD, MINUTE_FIELD, MONTH_FIELD, numberFormat, SECOND_FIELD, SHORT, TIMEZONE_FIELD, WEEK_OF_MONTH_FIELD, WEEK_OF_YEAR_FIELD, YEAR_FIELD| コンストラクタと説明 |
|---|
SimpleDateFormat()
デフォルトロケールのデフォルトパターンと日付フォーマット記号を使って
SimpleDateFormat を構築します。 |
SimpleDateFormat(String pattern)
指定されたパターンとデフォルトロケールのデフォルト日付フォーマット記号を使って
SimpleDateFormat を構築します。 |
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
指定されたパターンと日付フォーマット記号を使って
SimpleDateFormat を構築します。 |
SimpleDateFormat(String pattern, Locale locale)
指定されたパターンと指定されたロケールのデフォルト日付フォーマット記号を使って
SimpleDateFormat を構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
applyLocalizedPattern(String pattern)
指定されたローカライズされたパターン文字列を、この日付フォーマットに適用します。
|
void |
applyPattern(String pattern)
指定されたパターン文字列を、この日付フォーマットに適用します。
|
Object |
clone()
この
SimpleDateFormat のコピーを作成します。 |
boolean |
equals(Object obj)
指定されたオブジェクトとこの
SimpleDateFormat が等しいかどうかを比較します。 |
StringBuffer |
format(Date date, StringBuffer toAppendTo, FieldPosition pos)
指定された
Date を日付/時刻文字列にフォーマットし、指定された StringBuffer に結果を追加します。 |
AttributedCharacterIterator |
formatToCharacterIterator(Object obj)
Object をフォーマットし、
AttributedCharacterIterator を生成します。 |
Date |
get2DigitYearStart()
2 桁年が属すると解釈される 100 年間の開始日付を返します。
|
DateFormatSymbols |
getDateFormatSymbols()
この日付フォーマットの、日付と時刻のフォーマット記号のコピーを取得します。
|
int |
hashCode()
この
SimpleDateFormat オブジェクトのハッシュコード値を返します。 |
Date |
parse(String text, ParsePosition pos)
文字列からテキストを解析して
Date を生成します。 |
void |
set2DigitYearStart(Date startDate)
2 桁年が属すると解釈される 100 年間をユーザーが指定する日付から始まるように設定します。
|
void |
setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
この日付フォーマットの、日付と時刻のフォーマット記号を設定します。
|
String |
toLocalizedPattern()
この日付フォーマットのローカライズされたパターン文字列を返します。
|
String |
toPattern()
この日付フォーマットを記述するパターン文字列を返します。
|
format, format, getAvailableLocales, getCalendar, getDateInstance, getDateInstance, getDateInstance, getDateTimeInstance, getDateTimeInstance, getDateTimeInstance, getInstance, getNumberFormat, getTimeInstance, getTimeInstance, getTimeInstance, getTimeZone, isLenient, parse, parseObject, setCalendar, setLenient, setNumberFormat, setTimeZoneformat, parseObjectpublic SimpleDateFormat()
SimpleDateFormat を構築します。注:このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat クラスのファクトリメソッドを使用してください。public SimpleDateFormat(String pattern)
SimpleDateFormat を構築します。注:このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat クラスのファクトリメソッドを使用してください。pattern - 日付と時刻のフォーマットを記述するパターンNullPointerException - 指定されたパターンが null の場合IllegalArgumentException - 指定されたパターンが無効な場合public SimpleDateFormat(String pattern, Locale locale)
SimpleDateFormat を構築します。注:このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat クラスのファクトリメソッドを使用してください。pattern - 日付と時刻のフォーマットを記述するパターンlocale - 日付フォーマット記号を使用するロケールNullPointerException - 指定されたパターンまたはロケールが null の場合IllegalArgumentException - 指定されたパターンが無効な場合public SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
SimpleDateFormat を構築します。pattern - 日付と時刻のフォーマットを記述するパターンformatSymbols - フォーマットに使用する日付フォーマット記号NullPointerException - 指定されたパターンまたは formatSymbols が null の場合IllegalArgumentException - 指定されたパターンが無効な場合public void set2DigitYearStart(Date startDate)
startDate - 解析中、2 桁年は startDate - startDate + 100 years の範囲に配置される。get2DigitYearStart()public Date get2DigitYearStart()
set2DigitYearStart(java.util.Date)public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
Date を日付/時刻文字列にフォーマットし、指定された StringBuffer に結果を追加します。format、クラス: DateFormatdate - 日付/時刻文字列にフォーマットする日付/時刻値。toAppendTo - 新しい日付/時刻テキストを追加する位置。pos - フォーマットする位置。入力では、必要であれば位置合わせフィールド。出力では、その位置合わせフィールドのオフセット。NullPointerException - 指定された date が null である場合。public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator を生成します。返された AttributedCharacterIterator を使用すると、結果の String を構築できるとともに、結果の String についての情報を判定できます。
AttributedCharacterIterator の各属性キーは DateFormat.Field 型です。対応する属性値は属性キーと同一です。
formatToCharacterIterator、クラス: Formatobj - フォーマットするオブジェクトNullPointerException - obj が null の場合。IllegalArgumentException - 指定されたオブジェクトを Format でフォーマットできない場合、または Format のパターン文字列が無効な場合。public Date parse(String text, ParsePosition pos)
Date を生成します。
メソッドは pos によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字が使用されるとは限らない) のあとのインデックスに更新され、解析された日付が返されます。更新された pos は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos のインデックスは変更されず、エラーが発生した文字のインデックスに pos のエラーインデックスが設定され、null が返されます。
この解析操作は、calendar を使用して Date を生成します。calendar の日時フィールドはすべて解析前にクリアされ、日時情報が不足する場合は、calendar の日時フィールドのデフォルト値が使用されます。たとえば、解析操作によって年の値が取得されない場合、解析された Date の年の値は、GregorianCalendar を使って 1970 となります。text に指定されたパターンやタイムゾーンによっては、TimeZone の値が上書きされる可能性があります。さらに操作を行うには、setTimeZone の呼び出しによってすでに設定されている TimeZone 値の復元が必要になることもあります。
parse、クラス: DateFormattext - 部分的に解析される String。pos - 上記のインデックスおよびエラーインデックス情報を持つ ParsePosition オブジェクトDate。エラーの場合は null を返す。NullPointerException - text または pos が null の場合。public String toPattern()
public String toLocalizedPattern()
public void applyPattern(String pattern)
pattern - この日付フォーマットのための新しい日付と時刻のパターンNullPointerException - 指定されたパターンが null の場合IllegalArgumentException - 指定されたパターンが無効な場合public void applyLocalizedPattern(String pattern)
pattern - このフォーマットの新しい日付と時刻のフォーマットパターンにマップする StringNullPointerException - 指定されたパターンが null の場合IllegalArgumentException - 指定されたパターンが無効な場合public DateFormatSymbols getDateFormatSymbols()
setDateFormatSymbols(java.text.DateFormatSymbols)public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
newFormatSymbols - 新しい日付と時刻のフォーマット記号NullPointerException - 指定された newFormatSymbols が null の場合getDateFormatSymbols()public Object clone()
SimpleDateFormat のコピーを作成します。また、フォーマットの日付フォーマット記号を複製します。clone、クラス: DateFormatSimpleDateFormat の複製Cloneablepublic int hashCode()
SimpleDateFormat オブジェクトのハッシュコード値を返します。hashCode、クラス: DateFormatSimpleDateFormat オブジェクトのハッシュコード値。Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public boolean equals(Object obj)
SimpleDateFormat が等しいかどうかを比較します。equals、クラス: DateFormatobj - 比較対象の参照オブジェクト。SimpleDateFormat と等しい場合は trueObject.hashCode()、HashMap バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.