| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.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.FieldDateFormat.formatToCharacterIteratorから返されたAttributedCharacterIterator内の属性キー、およびFieldPosition内のフィールド識別子として使用する定数を定義します。 | 
| フィールドの概要 | |
|---|---|
| static int | AM_PM_FIELDAM_PM フィールドの位置合わせのための定数です。 | 
| protected  Calendar | calendar日付と時刻のフォーマットを行うためのタイムフィールドの値を生成するために DateFormatが使用するカレンダです。 | 
| static int | DATE_FIELDDATE フィールドの位置合わせのための定数です。 | 
| static int | DAY_OF_WEEK_FIELDDAY_OF_WEEK フィールドの位置合わせのための定数です。 | 
| static int | DAY_OF_WEEK_IN_MONTH_FIELDDAY_OF_WEEK_IN_MONTH フィールドの位置合わせのための定数です。 | 
| static int | DAY_OF_YEAR_FIELDDAY_OF_YEAR フィールドの位置合わせのための定数です。 | 
| static int | DEFAULTデフォルトスタイルパターンのための定数です。 | 
| static int | ERA_FIELDERA フィールドの位置合わせのための定数です。 | 
| static int | FULL全スタイルパターンのための定数です。 | 
| static int | HOUR_OF_DAY0_FIELD0 から始まる HOUR_OF_DAY フィールドの位置合わせのための定数です。 | 
| static int | HOUR_OF_DAY1_FIELD1 から始まる HOUR_OF_DAY フィールドの位置合わせのための定数です。 | 
| static int | HOUR0_FIELD0 から始まる HOUR フィールドの位置合わせのための定数です。 | 
| static int | HOUR1_FIELD1 から始まる HOUR フィールドの位置合わせのための定数です。 | 
| static int | LONG長いスタイルパターンのための定数です。 | 
| static int | MEDIUM長さが中位のスタイルパターンのための定数です。 | 
| static int | MILLISECOND_FIELDMILLISECOND フィールドの位置合わせのための定数です。 | 
| static int | MINUTE_FIELDMINUTE フィールドの位置合わせのための定数です。 | 
| static int | MONTH_FIELDMONTH フィールドの位置合わせのための定数です。 | 
| protected  NumberFormat | numberFormat日付と時刻の数値をフォーマットするために DateFormatが使用する数値フォーマッタです。 | 
| static int | SECOND_FIELDSECOND フィールドの位置合わせのための定数です。 | 
| static int | SHORT短いスタイルパターンのための定数です。 | 
| static int | TIMEZONE_FIELDTIMEZONE フィールドの位置合わせのための定数です。 | 
| static int | WEEK_OF_MONTH_FIELDWEEK_OF_MONTH フィールドの位置合わせのための定数です。 | 
| static int | WEEK_OF_YEAR_FIELDWEEK_OF_YEAR フィールドの位置合わせのための定数です。 | 
| static int | YEAR_FIELDYEAR フィールドの位置合わせのための定数です。 | 
| コンストラクタの概要 | |
|---|---|
| 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 内の formatobj - 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 内の parseObjectsource - 部分的に解析される Stringpos - 上記のインデックスおよびエラーインデックス情報を持つ 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 内の hashCodeObject.equals(java.lang.Object), 
Hashtablepublic boolean equals(Object obj)
Object 内の equalsobj - 比較対象の参照オブジェクト
true、そうでない場合は falseObject.hashCode(), 
Hashtablepublic Object clone()
Format 内の cloneCloneable| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。