|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.text.Format | +--java.text.DateFormat
DateFormat は、言語に依存しない方法で日付または時刻をフォーマットおよび解析する、日付/時刻フォーマットサブクラスの抽象クラスです。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 < a.length; ++i) { output.println(df.format(myDate[i]) + "; "); }
ある数値を異なるロケールに対してフォーマットする場合には、getDateInstance() の呼び出しにそれを指定します。
DateFormat df = DateFormat.getDateInstance(Locale.FRANCE);
さらに、解析のために DateFormat を使用することができます。
myDate = df.parse(myString);
その国の通常の日付フォーマットを取得するには、getDate を使用します。ほかにも使用可能な static ファクトリメソッドがあります。その国の時刻フォーマットを取得するには、getTime を使用します。日付と時刻フォーマットを取得するには、getDateTime を使用します。結果の長さを制御するために、これらの factory メソッドを異なるオプションで渡すことができます (SHORT から MEDIUM、LONG、FULL へ)。正確な結果はロケールに依存しますが、一般的には以下のようになります。
必要に応じて、フォーマットにタイムゾーンを設定することもできます。フォーマットや解析をさらに制御したい場合 (または、ユーザにそのような制御を与えたい場合) には、ファクトリメソッドから得た DateFormat を SimpleDateFormat にキャストする方法を試行することもできます。この方法はほとんどの国に有効ですが、そうでない場合に備えて、それを try ブロックに入れるようにしてください。
さらに、parse と format メソッドのフォーマットを ParsePosition と FieldPosition と一緒に使用すれば、次のことができます。
Format
,
NumberFormat
,
SimpleDateFormat
,
Calendar
,
GregorianCalendar
,
TimeZone
, 直列化された形式フィールドの概要 | |
static int |
AM_PM_FIELD
AM_PM フィールドの位置合わせのための定数です。 |
protected Calendar |
calendar
日付と時刻のフォーマットを行うためのタイムフィールドの値を生成するために DateFormat が使用するカレンダです。 |
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()
DateFormats が導入されているロケールセットを取得します。 |
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 text)
日付/時刻文字列を解析します。 |
abstract Date |
parse(String text,
ParsePosition pos)
指定された解析位置に従って日付/時刻文字列を解析します。 |
Object |
parseObject(String source,
ParsePosition pos)
日付/時刻文字列を Object に解析します。 |
void |
setCalendar(Calendar newCalendar)
この日付フォーマットで使用するカレンダを設定します。 |
void |
setLenient(boolean lenient)
日付/時刻解析を厳密に行うかどうかを設定します。 |
void |
setNumberFormat(NumberFormat newNumberFormat)
数値フォーマッタを設定します。 |
void |
setTimeZone(TimeZone zone)
この DateFormat オブジェクトのカレンダのタイムゾーンを設定します。 |
クラス java.text.Format から継承したメソッド |
format,
parseObject |
クラス java.lang.Object から継承したメソッド |
finalize,
getClass,
notify,
notifyAll,
toString,
wait,
wait,
wait |
フィールドの詳細 |
protected Calendar calendar
DateFormat
が使用するカレンダです。サブクラスは、このカレンダを、この DateFormat
に対応するロケールに適したカレンダに初期化する必要があります。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
コンストラクタの詳細 |
protected DateFormat()
メソッドの詳細 |
public final StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
obj
- Number か DatetoAppendTo
- 返される時刻文字列のための文字列バッファ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
- 日付/時刻文字列にフォーマットする DatetoAppendTo
- 返される時刻文字列のための文字列バッファ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 text) throws ParseException
text
- 解析される日付/時刻文字列parse(String, ParsePosition)
public abstract Date parse(String text, ParsePosition pos)
デフォルト値では、解析は厳密ではありません。入力が、このオブジェクトのフォーマットメソッドで使用されるフォーマットではないが、日付として解析可能であれば、解析は正常に行われます。クライアントは、setLenient(false) を呼び出すことによって、このフォーマットを厳密に要求することができます。
text
- 解析する日付/時刻文字列pos
- 入力では、解析を開始する位置。出力では、解析が終了した位置、または解析が失敗した場合には開始位置setLenient(boolean)
public Object parseObject(String source, ParsePosition pos)
parse(String, ParsePosition)
public static final DateFormat getTimeInstance()
public static final DateFormat getTimeInstance(int style)
style
- 指定するフォーマットスタイル。たとえば、US ロケールにおける "h:mm a" に対する SHORTpublic static final DateFormat getTimeInstance(int style, Locale aLocale)
style
- 指定するフォーマットスタイル。たとえば、US ロケールにおける "h:mm a" に対する SHORTaLocale
- 指定するロケールpublic static final DateFormat getDateInstance()
public static final DateFormat getDateInstance(int style)
style
- 指定するフォーマットスタイル。たとえば、US ロケールにおける "M/d/yy" に対する SHORTpublic static final DateFormat getDateInstance(int style, Locale aLocale)
style
- 指定するフォーマットスタイル。たとえば、US ロケールにおける "M/d/yy" に対する SHORTaLocale
- 指定するロケールpublic static final DateFormat getDateTimeInstance()
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)
dateStyle
- 指定する日付フォーマットスタイル。たとえば、US ロケールにおける "M/d/yy" に対する SHORTtimeStyle
- 指定する時刻フォーマットスタイル。たとえば、US ロケールにおける ":h:mm a" に対する SHORTpublic static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
dateStyle
- 指定する日付フォーマットスタイルtimeStyle
- 指定する時刻フォーマットスタイルaLocale
- 指定するロケールpublic static final DateFormat getInstance()
public static Locale[] getAvailableLocales()
public void setCalendar(Calendar newCalendar)
newCalendar
- 日付フォーマットで使用される新しい Calendarpublic Calendar getCalendar()
public void setNumberFormat(NumberFormat newNumberFormat)
newNumberFormat
- 指定する新しい NumberFormatpublic NumberFormat getNumberFormat()
public void setTimeZone(TimeZone zone)
zone
- 指定する新しいタイムゾーンpublic TimeZone getTimeZone()
public void setLenient(boolean lenient)
lenient
- true の場合は厳密ではない解析Calendar.setLenient(boolean)
public boolean isLenient()
public int hashCode()
public boolean equals(Object obj)
public Object clone()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |