|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.text.Format java.text.DateFormat
public abstract class DateFormat
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 へ)。正確な結果はロケールに依存しますが、一般的には次のようになります。
必要に応じて、フォーマットにタイムゾーンを設定することもできます。フォーマットや解析をさらに制御する場合 (または、ユーザーにそのような制御を与える場合) には、ファクトリメソッドから得た DateFormat を SimpleDateFormat にキャストする方法を試行することもできます。この方法はほとんどの国に有効ですが、そうでない場合に備えて、try ブロックに入れるようにしてください。
さらに、parse と format メソッドの形式を ParsePosition と FieldPosition と一緒に使用すれば、次のことが行えます。
日付フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
Format
,
NumberFormat
,
SimpleDateFormat
,
Calendar
,
GregorianCalendar
,
TimeZone
,
直列化された形式入れ子のクラスの概要 | |
---|---|
static class |
DateFormat.Field
DateFormat.formatToCharacterIterator から返された AttributedCharacterIterator 内の属性キー、および FieldPosition 内のフィールド識別子として使用する定数を定義します。 |
フィールドの概要 | |
---|---|
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()
このクラスの 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 オブジェクトのカレンダのタイムゾーンを設定します。 |
クラス java.text.Format から継承されたメソッド |
---|
format, formatToCharacterIterator, 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)
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
- 日付/時刻文字列にフォーマットする 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 source) throws ParseException
日付の解析についての詳細は、parse(String, ParsePosition)
メソッドを参照してください。
source
- 先頭が解析される String
Date
ParseException
- 指定された文字列の先頭が解析できない場合public abstract Date parse(String source, ParsePosition pos)
デフォルト値では、解析は厳密ではありません。入力が、このオブジェクトのフォーマットメソッドで使用される形式ではないが、日付として解析可能であれば、解析は正常に行われます。クライアントは、setLenient(false) を呼び出すことによって、このフォーマットを厳密に要求できます。
source
- 解析する日付/時刻文字列pos
- 入力時は、解析を開始する位置。出力時は、解析が終了した位置、または解析が失敗した場合には開始位置
setLenient(boolean)
public Object parseObject(String source, ParsePosition pos)
Date
を生成します。
メソッドは pos
によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos
のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字を使用する必要はありません) のあとのインデックスに更新され、解析された日付が返されます。更新された pos
は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos
のインデックスは変更されず、エラーが発生した文字のインデックスに pos
のエラーインデックスが設定され、null が返されます。
日付の解析についての詳細は、parse(String, ParsePosition)
メソッドを参照してください。
Format
内の parseObject
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 に対する SHORTaLocale
- 指定されたロケール
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 に対する 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 に対する 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
- 日付フォーマットで使用する新しい 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()
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Object
内の equals
obj
- 比較対象の参照オブジェクト
true
、そうでない場合は false
Object.hashCode()
,
Hashtable
public Object clone()
Format
内の clone
Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。