JavaTM 2 Platform
Standard Ed. 5.0

java.text
クラス SimpleDateFormat

java.lang.Object
  上位を拡張 java.text.Format
      上位を拡張 java.text.DateFormat
          上位を拡張 java.text.SimpleDateFormat
すべての実装されたインタフェース:
Serializable, Cloneable

public class SimpleDateFormat
extends DateFormat

SimpleDateFormat は、日付のフォーマットと解析を、ロケールを考慮して行うための具象クラスです。これによって、フォーマット (日付 -> テキスト)、解析 (テキスト -> 日付)、および正規化を行うことができます。

SimpleDateFormat を使うと、日付時刻フォーマットのユーザ定義パターンを選択することによって、とりあえず使用を開始することができます。しかし、できるだけ、DateFormatgetTimeInstancegetDateInstance、または getDateTimeInstance で日付時刻フォーマッタを作成するようにしてください。これらのクラスメソッドはいずれも、デフォルトフォーマットパターンで初期化された日付時刻フォーマッタを返すことができます。フォーマットパターンは、必要に応じて、applyPattern メソッドを使って修正することができます。これらのメソッドの使い方については、DateFormat を参照してください。

日付/時刻パターン

日付/時刻フォーマットは「日付/時刻パターン」文字列で指定されます。日付/時刻パターン文字列内では、引用符で囲まれていない 'A''Z' および 'a''z' は、日付または時刻文字列のコンポーネントを表すパターン文字として解釈されます。テキストは単一引用符 (') で囲むことで解釈を回避できます。「''」は単一引用符を表します。ほかのすべての文字は解釈されず、フォーマット中に出力文字列へ単純にコピーされるか、解析中に入力文字列に対して一致させられます。

次のパターン文字が定義されます。(他の 'A''Z' および 'a''z' のすべての文字は予約済み)

文字日付または時刻のコンポーネント表示
G 紀元テキスト AD
y 1996; 96
M July; Jul; 07
w 年における週数値 27
W 月における週数値 2
D 年における日数値 189
d 月における日数値 10
F 月における曜日数値 2
E 曜日テキスト Tuesday; Tue
a 午前/午後テキスト PM
H 1 日における時 (0 〜 23)数値 0
k 1 日における時 (1 〜 24)数値 24
K 午前/午後の時 (0 〜 11)数値 0
h 午前/午後の時 (1 〜 12)数値 12
m 数値 30
s 数値 55
S ミリ秒数値 978
z タイムゾーン一般的なタイムゾーン Pacific Standard Time; PST; GMT-08:00
Z タイムゾーンRFC 822 タイムゾーン -0800
パターン文字は、その数で正確な表現が決まるため、通常繰り返されます。 SimpleDateFormat は「地域対応された日付/時刻パターン」文字列もサポートします。この文字列では、前述したパターン文字はロケール依存の他の文字パターンに置き換えられます。SimpleDateFormat はパターン文字以外のテキストの地域対応を行いません。この地域対応は、クラスのクライアントによります。

次の例に、U.S. ロケールで日付/時刻パターンがどのように解釈されるかを示します。指定された日付と時刻は U.S. Pacific Time タイムゾーンのローカルタイム 2001 年 7 月 4 日 12 時 8 分 56 秒です。
日付/時刻パターン結果
「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

同期

日付フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに同時にアクセスする場合は、外部的に同期化する必要があります。

関連項目:
Java Tutorial, Calendar, TimeZone, DateFormat, DateFormatSymbols, 直列化された形式

入れ子のクラスの概要
 
クラス java.text.DateFormat から継承された入れ子のクラス/インタフェース
DateFormat.Field
 
フィールドの概要
 
クラス java.text.DateFormat から継承されたフィールド
AM_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()
          この日付フォーマットを記述するパターン文字列を返します。
 
クラス java.text.DateFormat から継承されたメソッド
format, format, getAvailableLocales, getCalendar, getDateInstance, getDateInstance, getDateInstance, getDateTimeInstance, getDateTimeInstance, getDateTimeInstance, getInstance, getNumberFormat, getTimeInstance, getTimeInstance, getTimeInstance, getTimeZone, isLenient, parse, parseObject, setCalendar, setLenient, setNumberFormat, setTimeZone
 
クラス java.text.Format から継承されたメソッド
format, parseObject
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

SimpleDateFormat

public SimpleDateFormat()
デフォルトロケールのデフォルトパターンと日付フォーマット記号を使って SimpleDateFormat を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat クラスのファクトリメソッドを使用してください。


SimpleDateFormat

public SimpleDateFormat(String pattern)
指定されたパターンとデフォルトロケールのデフォルト日付フォーマット記号を使って SimpleDateFormat を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat クラスのファクトリメソッドを使用してください。

パラメータ:
pattern - 日付と時刻のフォーマットを記述するパターン
例外:
NullPointerException - 指定されたパターンが null の場合
IllegalArgumentException - 指定されたパターンが正しくない場合

SimpleDateFormat

public SimpleDateFormat(String pattern,
                        Locale locale)
指定されたパターンと指定されたロケールのデフォルト日付フォーマット記号を使って SimpleDateFormat を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat クラスのファクトリメソッドを使用してください。

パラメータ:
pattern - 日付と時刻のフォーマットを記述するパターン
locale - 日付フォーマット記号を使用するロケール
例外:
NullPointerException - 指定されたパターンが null の場合
IllegalArgumentException - 指定されたパターンが正しくない場合

SimpleDateFormat

public SimpleDateFormat(String pattern,
                        DateFormatSymbols formatSymbols)
指定されたパターンと日付フォーマット記号を使って SimpleDateFormat を構築します。

パラメータ:
pattern - 日付と時刻のフォーマットを記述するパターン
formatSymbols - フォーマットに使用する日付フォーマット記号
例外:
NullPointerException - 指定されたパターンまたは formatSymbols が null の場合
IllegalArgumentException - 指定されたパターンが正しくない場合
メソッドの詳細

set2DigitYearStart

public void set2DigitYearStart(Date startDate)
2 桁年が属すると解釈される 100 年間をユーザが指定する日付から始まるように設定します。

パラメータ:
startDate - 解析中、2 桁年は startDatestartDate + 100 years の範囲に配置される
導入されたバージョン:
1.2
関連項目:
get2DigitYearStart()

get2DigitYearStart

public Date get2DigitYearStart()
2 桁年が属すると解釈される 100 年間の開始日付を返します。

戻り値:
2 桁年が解析される 100 年間の始まり
導入されたバージョン:
1.2
関連項目:
set2DigitYearStart(java.util.Date)

format

public StringBuffer format(Date date,
                           StringBuffer toAppendTo,
                           FieldPosition pos)
指定された Date を日付/時刻文字列にフォーマットし、指定された StringBuffer に結果を追加します。

定義:
クラス DateFormat 内の format
パラメータ:
date - 日付/時刻文字列にフォーマットする日付/時刻値
toAppendTo - 新しい日付/時刻テキストを追加する位置
pos - フォーマットする位置。入力では、必要であれば位置合わせフィールド。出力では、その位置合わせフィールドのオフセット
戻り値:
フォーマットされた日付/時刻文字列
例外:
NullPointerException - 指定された日付が null の場合

formatToCharacterIterator

public AttributedCharacterIterator formatToCharacterIterator(Object obj)
Object をフォーマットし、AttributedCharacterIterator を生成します。返された AttributedCharacterIterator を使用すると、結果の String を構築できるとともに、結果の String についての情報を判定できます。

AttributedCharacterIterator の各属性キーは DateFormat.Field 型です。対応する属性値は属性キーと同一です。

オーバーライド:
クラス Format 内の formatToCharacterIterator
パラメータ:
obj - フォーマットするオブジェクト
戻り値:
フォーマットされた値を説明する AttributedCharacterIterator
例外:
NullPointerException - obj が null の場合
IllegalArgumentException - 指定されたオブジェクトを Format でフォーマットできない場合、または Format のパターン文字列が無効な場合
導入されたバージョン:
1.4

parse

public Date parse(String text,
                  ParsePosition pos)
文字列からテキストを解析して Date を生成します。

メソッドは pos によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字を使用する必要はありません) のあとのインデックスに更新され、解析された日付が返されます。更新された pos は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos のインデックスは変更されず、エラーが発生した文字のインデックスに pos のエラーインデックスが設定され、null が返されます。

定義:
クラス DateFormat 内の parse
パラメータ:
text - 部分的に解析される String
pos - 上記のインデックスおよびエラーインデックス情報を持つ ParsePosition オブジェクト
戻り値:
文字列から解析された Date。エラーの場合は null
例外:
NullPointerException - text または pos が null の場合
関連項目:
DateFormat.setLenient(boolean)

toPattern

public String toPattern()
この日付フォーマットを記述するパターン文字列を返します。

戻り値:
この日付フォーマットを記述するパターン文字列

toLocalizedPattern

public String toLocalizedPattern()
この日付フォーマットの地域対応されたパターン文字列を返します。

戻り値:
この日付フォーマットを記述する地域対応されたパターン文字列

applyPattern

public void applyPattern(String pattern)
指定されたパターン文字列を、この日付フォーマットに適用します。

パラメータ:
pattern - この日付フォーマットのための新しい日付と時刻のパターン
例外:
NullPointerException - 指定されたパターンが null の場合
IllegalArgumentException - 指定されたパターンが正しくない場合

applyLocalizedPattern

public void applyLocalizedPattern(String pattern)
指定された地域対応されたパターン文字列を、この日付フォーマットに適用します。

パラメータ:
pattern - この日付フォーマットのために新しい日付と時刻のフォーマットパターンへマップされる String
例外:
NullPointerException - 指定されたパターンが null の場合
IllegalArgumentException - 指定されたパターンが正しくない場合

getDateFormatSymbols

public DateFormatSymbols getDateFormatSymbols()
この日付フォーマットの、日付と時刻のフォーマット記号のコピーを取得します。

戻り値:
この日付フォーマットの、日付と時刻のフォーマット記号
関連項目:
setDateFormatSymbols(java.text.DateFormatSymbols)

setDateFormatSymbols

public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
この日付フォーマットの、日付と時刻のフォーマット記号を設定します。

パラメータ:
newFormatSymbols - 新しい日付と時刻のフォーマット記号
例外:
NullPointerException - 指定された newFormatSymbols が null の場合
関連項目:
getDateFormatSymbols()

clone

public Object clone()
この SimpleDateFormat のコピーを作成します。また、フォーマットの日付フォーマット記号を複製します。

オーバーライド:
クラス DateFormat 内の clone
戻り値:
この SimpleDateFormat の複製
関連項目:
Cloneable

hashCode

public int hashCode()
この SimpleDateFormat オブジェクトのハッシュコード値を返します。

オーバーライド:
クラス DateFormat 内の hashCode
戻り値:
この SimpleDateFormat オブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
指定されたオブジェクトとこの SimpleDateFormat が等しいかどうかを比較します。

オーバーライド:
クラス DateFormat 内の equals
パラメータ:
obj - 比較対象の参照オブジェクト
戻り値:
指定されたオブジェクトが SimpleDateFormat と等しい場合は true
関連項目:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。