public abstract class DateFormat extends Format
DateFormat
は、言語に依存しない方法で日付または時刻をフォーマットおよび解析する、日付/時刻フォーマットサブクラスの abstract クラスです。SimpleDateFormat
などの日付/時刻フォーマットサブクラスによって、フォーマット (日付 - テキスト)、解析 (テキスト - 日付)、および正規化を行うことができます。日付は、Date
オブジェクトまたは 1970 年 1 月 1 日グリニッジ標準時 00:00:00 からのミリ秒で表現されます。
DateFormat
は、デフォルト値、指定されたロケール、多くのフォーマットスタイルに基づいて、デフォルトの日付/時刻フォーマッタを取得する多くのクラスメソッドを提供します。フォーマットスタイルには FULL
、LONG
、MEDIUM
、および SHORT
があります。これらのスタイルの詳細と使用例については、メソッドの説明を参照してください。
DateFormat
は、すべてのロケールの日付についてフォーマットおよび解析を支援します。コードは、月、曜日、カレンダフォーマット、陰暦太陽暦などロケールの慣習とは完全に独立しています。
現在のロケール用に日付をフォーマットするためには、次の static ファクトリメソッドの 1 つを使用します。
myString = DateFormat.getDateInstance().format(myDate);
複数の日付をフォーマットする場合には、そのフォーマットを取得して、それを複数回使う方が効率的です。これにより、システムがローカルの言語と国のルールを何度も取得する必要がなくなります。
DateFormat df = DateFormat.getDateInstance(); for (int i = 0; i < myDate.length; ++i) { output.println(df.format(myDate[i]) + "; "); }
ある日付を異なるロケールに対してフォーマットする場合には、getDateInstance()
の呼び出しにその日付を指定します。
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
さらに、解析のために DateFormat を使用できます。
myDate = df.parse(myString);
その国の通常の日付フォーマットを取得するには、getDateInstance
を使用します。ほかにも使用可能な static ファクトリメソッドがあります。その国の時刻フォーマットを取得するには、getTimeInstance
を使用します。日付と時刻フォーマットを取得するには、getDateTimeInstance
を使用します。結果の長さを制御するために、これらのファクトリメソッドを異なるオプションで渡すことができます (SHORT
から MEDIUM
、LONG
、FULL
へ)。正確な結果はロケールに依存しますが、一般的には次のようになります。
SHORT
はすべて数値で、12.13.52
や 3:30pm
など
MEDIUM
はそれより長い形式で、Jan 12, 1952
など
LONG
はさらに長い形式で、January 12, 1952
や 3:30:32pm
など
FULL
はほぼ完全に指定する形式で、Tuesday, April 12, 1952 AD or 3:30:42pm PST
など。
必要に応じて、フォーマットにタイムゾーンを設定することもできます。フォーマットや解析をさらに制御する場合 (または、ユーザーにそのような制御を与える場合) には、ファクトリメソッドから得た DateFormat
を SimpleDateFormat
にキャストする方法を試行することもできます。この方法はほとんどの国に有効ですが、そうでない場合に備えて、try
ブロックに入れるようにしてください。
さらに、parse と format メソッドの形式を ParsePosition
と FieldPosition
とともに使用すれば、次のことが可能です。
日付フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
修飾子と型 | クラスと説明 |
---|---|
static class |
DateFormat.Field
DateFormat.formatToCharacterIterator から返された AttributedCharacterIterator 内の属性キー、および FieldPosition 内のフィールド識別子として使用する定数を定義します。 |
修飾子と型 | フィールドと説明 |
---|---|
static int |
AM_PM_FIELD
AM_PM フィールドの位置合わせのための定数です。
|
protected Calendar |
calendar
日付/時刻フィールドとその時点を計算するために使用される
Calendar インスタンスです。 |
static int |
DATE_FIELD
DATE フィールドの位置合わせのための定数です。
|
static int |
DAY_OF_WEEK_FIELD
DAY_OF_WEEK フィールドの位置合わせのための定数です。
|
static int |
DAY_OF_WEEK_IN_MONTH_FIELD
DAY_OF_WEEK_IN_MONTH フィールドの位置合わせのための定数です。
|
static int |
DAY_OF_YEAR_FIELD
DAY_OF_YEAR フィールドの位置合わせのための定数です。
|
static int |
DEFAULT
デフォルトスタイルパターンのための定数です。
|
static int |
ERA_FIELD
ERA フィールドの位置合わせのための定数です。
|
static int |
FULL
全スタイルパターンのための定数です。
|
static int |
HOUR_OF_DAY0_FIELD
0 から始まる HOUR_OF_DAY フィールドの位置合わせのための定数です。
|
static int |
HOUR_OF_DAY1_FIELD
1 から始まる HOUR_OF_DAY フィールドの位置合わせのための定数です。
|
static int |
HOUR0_FIELD
0 から始まる HOUR フィールドの位置合わせのための定数です。
|
static int |
HOUR1_FIELD
1 から始まる HOUR フィールドの位置合わせのための定数です。
|
static int |
LONG
長いスタイルパターンのための定数です。
|
static int |
MEDIUM
長さが中位のスタイルパターンのための定数です。
|
static int |
MILLISECOND_FIELD
MILLISECOND フィールドの位置合わせのための定数です。
|
static int |
MINUTE_FIELD
MINUTE フィールドの位置合わせのための定数です。
|
static int |
MONTH_FIELD
MONTH フィールドの位置合わせのための定数です。
|
protected NumberFormat |
numberFormat
日付と時刻の数値をフォーマットするために
DateFormat が使用する数値フォーマッタです。 |
static int |
SECOND_FIELD
SECOND フィールドの位置合わせのための定数です。
|
static int |
SHORT
短いスタイルパターンのための定数です。
|
static int |
TIMEZONE_FIELD
TIMEZONE フィールドの位置合わせのための定数です。
|
static int |
WEEK_OF_MONTH_FIELD
WEEK_OF_MONTH フィールドの位置合わせのための定数です。
|
static int |
WEEK_OF_YEAR_FIELD
WEEK_OF_YEAR フィールドの位置合わせのための定数です。
|
static int |
YEAR_FIELD
YEAR フィールドの位置合わせのための定数です。
|
修飾子 | コンストラクタと説明 |
---|---|
protected |
DateFormat()
新しい日付フォーマットを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
Object |
clone()
Cloneable をオーバーライドします。
|
boolean |
equals(Object obj)
equals をオーバーライドします。
|
String |
format(Date date)
Date を日付/時刻文字列にフォーマットします。
|
abstract StringBuffer |
format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)
Date を日付/時刻文字列にフォーマットします。
|
StringBuffer |
format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
Format をオーバーライドします。
|
static Locale[] |
getAvailableLocales()
このクラスの
get*Instance メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。 |
Calendar |
getCalendar()
この日付/時刻フォーマッタに対応するカレンダを取得します。
|
static DateFormat |
getDateInstance()
デフォルトのロケールに対し、デフォルトのフォーマットスタイルを持つ日付フォーマッタを取得します。
|
static DateFormat |
getDateInstance(int style)
デフォルトのロケールに対し、指定されたフォーマットスタイルを持つ日付フォーマッタを取得します。
|
static DateFormat |
getDateInstance(int style, Locale aLocale)
指定されたロケールに対し、指定されたフォーマットスタイルを持つ日付フォーマッタを取得します。
|
static DateFormat |
getDateTimeInstance()
デフォルトのロケールに対し、デフォルトのフォーマットスタイルを持つ日付/時刻フォーマッタを取得します。
|
static DateFormat |
getDateTimeInstance(int dateStyle, int timeStyle)
デフォルトのロケールに対し、指定された日付/時刻フォーマットスタイルを持つ日付/時刻フォーマッタを取得します。
|
static DateFormat |
getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
指定されたロケールに対し、指定されたフォーマットスタイルを持つ日付/時刻フォーマッタを取得します。
|
static DateFormat |
getInstance()
日付と時刻の両方に対し SHORT スタイルを持つ日付/時刻フォーマッタを取得します。
|
NumberFormat |
getNumberFormat()
時刻のフォーマットと解析のためにこの日付/時刻フォーマッタが使用する数値フォーマッタを取得します。
|
static DateFormat |
getTimeInstance()
デフォルトのロケールに対し、デフォルトのフォーマットスタイルを持つ時刻フォーマッタを取得します。
|
static DateFormat |
getTimeInstance(int style)
デフォルトのロケールに対し、指定されたフォーマットスタイルを持つ時刻フォーマッタを取得します。
|
static DateFormat |
getTimeInstance(int style, Locale aLocale)
指定されたロケールに対し、指定されたフォーマットスタイルを持つ時刻フォーマッタを取得します。
|
TimeZone |
getTimeZone()
タイムゾーンを取得します。
|
int |
hashCode()
hashCode をオーバーライドします。
|
boolean |
isLenient()
日付/時刻の解析を厳密に行うかどうかを判定します。
|
Date |
parse(String source)
指定された文字列の先頭からテキストを解析して日付を生成します。
|
abstract Date |
parse(String source, ParsePosition pos)
指定された解析位置に従って日付/時刻文字列を解析します。
|
Object |
parseObject(String source, ParsePosition pos)
文字列からテキストを解析して
Date を生成します。 |
void |
setCalendar(Calendar newCalendar)
この日付フォーマットで使用するカレンダを設定します。
|
void |
setLenient(boolean lenient)
日付/時刻解析を厳密に行うかどうかを設定します。
|
void |
setNumberFormat(NumberFormat newNumberFormat)
数値フォーマッタを設定します。
|
void |
setTimeZone(TimeZone zone)
この
DateFormat オブジェクトのカレンダのタイムゾーンを設定します。 |
format, formatToCharacterIterator, parseObject
protected Calendar calendar
protected NumberFormat numberFormat
DateFormat
が使用する数値フォーマッタです。サブクラスは、これを、この DateFormat
に関連付けられているロケールに適した数値フォーマットに初期化します。public static final int ERA_FIELD
public static final int YEAR_FIELD
public static final int MONTH_FIELD
public static final int DATE_FIELD
public static final int HOUR_OF_DAY1_FIELD
public static final int HOUR_OF_DAY0_FIELD
public static final int MINUTE_FIELD
public static final int SECOND_FIELD
public static final int MILLISECOND_FIELD
public static final int DAY_OF_WEEK_FIELD
public static final int DAY_OF_YEAR_FIELD
public static final int DAY_OF_WEEK_IN_MONTH_FIELD
public static final int WEEK_OF_YEAR_FIELD
public static final int WEEK_OF_MONTH_FIELD
public static final int AM_PM_FIELD
public static final int HOUR1_FIELD
public static final int HOUR0_FIELD
public static final int TIMEZONE_FIELD
public static final int FULL
public static final int LONG
public static final int MEDIUM
public static final int SHORT
public static final int DEFAULT
public final StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
format
、クラス: Format
obj
- Number または Date にする必要がある。toAppendTo
- 返される時刻文字列のための文字列バッファー。fieldPosition
- 返された文字列内のフィールド位置を把握する。入力では、必要であれば位置合わせフィールド。出力では、その位置合わせフィールドのオフセット。たとえば、「1996.07.10 AD at 15:08:56 PDT」という時刻テキストが指定された場合に、指定された fieldPosition が DateFormat.YEAR_FIELD であれば、fieldPosition の開始インデックスと終了インデックスはそれぞれ 0 と 4 に設定される。同じ時刻フィールドがパターン内で複数回現れる場合、fieldPosition はその時刻フィールドの最初のものに設定される。たとえば、パターン「h a z (zzzz)」と位置合わせフィールドの DateFormat.TIMEZONE_FIELD を使って Date を時刻文字列「1 PM PDT (Pacific Daylight Time)」にフォーマットすると、fieldPosition の開始インデックスと終了インデックスはそれぞれ、最初に現れたタイムゾーンパターン文字「z」に対して 5 と 8 に設定される。Format
public abstract StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)
date
- 日付/時刻文字列にフォーマットする Date。toAppendTo
- 返される日付/時刻文字列のための文字列バッファー。fieldPosition
- 返された文字列内のフィールド位置を把握する。入力では、必要であれば位置合わせフィールド。出力では、その位置合わせフィールドのオフセット。たとえば、「1996.07.10 AD at 15:08:56 PDT」という時刻テキストが指定された場合に、指定された fieldPosition が DateFormat.YEAR_FIELD であれば、fieldPosition の開始インデックスと終了インデックスはそれぞれ 0 と 4 に設定される。同じ時刻フィールドがパターン内で複数回現れる場合、fieldPosition はその時刻フィールドの最初のものに設定される。たとえば、パターン「h a z (zzzz)」と位置合わせフィールドの DateFormat.TIMEZONE_FIELD を使って Date を時刻文字列「1 PM PDT (Pacific Daylight Time)」にフォーマットすると、fieldPosition の開始インデックスと終了インデックスはそれぞれ、最初に現れたタイムゾーンパターン文字「z」に対して 5 と 8 に設定される。public final String format(Date date)
date
- 時刻文字列にフォーマットする時刻値。public Date parse(String source) throws ParseException
日付の解析の詳細については、parse(String, ParsePosition)
メソッドを参照してください。
source
- 先頭が解析される String
。Date
。ParseException
- 指定された文字列の先頭が解析できない場合。public abstract Date parse(String source, ParsePosition pos)
"07/10/96 4:5 PM, PDT"
が、Date(837039900000L)
と同等な Date
に解析されます。
デフォルト値では、解析は厳密ではありません。入力が、このオブジェクトのフォーマットメソッドで使用される形式ではないが、日付として解析可能であれば、解析は正常に行われます。クライアントは、setLenient(false)
を呼び出すことによって、このフォーマットを厳密に要求できます。
この解析操作は、calendar
を使用して Date
を生成します。その結果、サブクラスの実装によっては、calendar
の日時フィールドおよび TimeZone
値が上書きされた可能性があります。さらに操作を行うには、setTimeZone
の呼び出しによってすでに設定されている TimeZone
値の復元が必要になることもあります。
source
- 解析する日付/時刻文字列pos
- 入力時は、解析を開始する位置。出力時は、解析が終了した位置、または解析が失敗した場合には開始位置。Date
。入力解析ができない場合は null
public Object parseObject(String source, ParsePosition pos)
Date
を生成します。
メソッドは pos
によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos
のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字が使用されるとは限らない) のあとのインデックスに更新され、解析された日付が返されます。更新された pos
は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos
のインデックスは変更されず、エラーが発生した文字のインデックスに pos
のエラーインデックスが設定され、null が返されます。
日付の解析の詳細については、parse(String, ParsePosition)
メソッドを参照してください。
parseObject
、クラス: Format
source
- 部分的に解析される String
。pos
- 上記のインデックスおよびエラーインデックス情報を持つ ParsePosition
オブジェクトDate
。エラーの場合は null を返す。NullPointerException
- pos
が null である場合。public static final DateFormat getTimeInstance()
public static final DateFormat getTimeInstance(int style)
style
- 指定するフォーマットスタイル。たとえば、US ロケールでの h:mm a に対する SHORT。public static final DateFormat getTimeInstance(int style, Locale aLocale)
style
- 指定するフォーマットスタイル。たとえば、US ロケールでの h:mm a に対する SHORT。aLocale
- 指定されたロケール。public static final DateFormat getDateInstance()
public static final DateFormat getDateInstance(int style)
style
- 指定するフォーマットスタイル。たとえば、US ロケールでの M/d/yy に対する SHORT。public static final DateFormat getDateInstance(int style, Locale aLocale)
style
- 指定するフォーマットスタイル。たとえば、US ロケールでの M/d/yy に対する SHORT。aLocale
- 指定されたロケール。public static final DateFormat getDateTimeInstance()
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)
dateStyle
- 指定する日付フォーマットスタイル。たとえば、US ロケールでの M/d/yy に対する SHORT。timeStyle
- 指定する時刻フォーマットスタイル。たとえば、US ロケールでの h:mm a に対する SHORT。public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
dateStyle
- 指定する日付フォーマットスタイル。timeStyle
- 指定する時刻フォーマットスタイル。aLocale
- 指定されたロケール。public static final DateFormat getInstance()
public static Locale[] getAvailableLocales()
get*Instance
メソッドがローカライズされたインスタンスを返すことのできるロケールすべての配列を返します。返される配列は、Java ランタイムおよびインストールされている DateFormatProvider
実装によってサポートされているロケールの和集合を表します。これには、Locale.US
と等価な Locale
インスタンスが少なくとも 1 つ含まれている必要があります。DateFormat
インスタンスを使用可能なロケールの配列。public void setCalendar(Calendar newCalendar)
newCalendar
- 日付フォーマットで使用する新しい Calendar
。public Calendar getCalendar()
public void setNumberFormat(NumberFormat newNumberFormat)
newNumberFormat
- 指定する新しい NumberFormat。public NumberFormat getNumberFormat()
public void setTimeZone(TimeZone zone)
DateFormat
オブジェクトのカレンダのタイムゾーンを設定します。このメソッドは次の呼び出しと等価です。
getCalendar().setTimeZone(zone)
このメソッドで設定された TimeZone
は、setCalendar
の呼び出しで上書きされます。
parse メソッドの呼び出しの結果として、このメソッドで設定された TimeZone
が上書きされる可能性があります。
zone
- 指定する新しいタイムゾーン。public TimeZone getTimeZone()
getCalendar().getTimeZone()
public void setLenient(boolean lenient)
このメソッドは次の呼び出しと等価です。
getCalendar().setLenient(lenient)
この非厳密の値は、setCalendar()
の呼び出しによって上書きされます。
lenient
- true
の場合は厳密ではない解析Calendar.setLenient(boolean)
public boolean isLenient()
getCalendar().isLenient()
calendar
が非厳密である場合は true
、それ以外の場合は false
。Calendar.isLenient()
public int hashCode()
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
equals
、クラス: Object
obj
- 比較対象の参照オブジェクト。true
、それ以外の場合は false
。Object.hashCode()
、HashMap
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.