|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.text.Format | +--java.text.DateFormat | +--java.text.SimpleDateFormat
SimpleDateFormat
は、日付のフォーマットと解析を、ロケールを考慮して行うための具象クラスです。これによって、フォーマット (日付 -> テキスト)、解析 (テキスト -> 日付)、および正規化を行うことができます。
SimpleDateFormat
を使うと、日付時刻フォーマットのユーザ定義パターンを選択することによって、とりあえず使用を開始することができます。しかし、できるだけ、DateFormat
の getTimeInstance
、getDateInstance
、または 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
一日における時 (0 〜 23) 数値 0
k
一日における時 (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
解析には、パターン文字の数が 2 以上の場合、年は桁数にかかわらず文字どおりに解釈されます。"MM/dd/yyyy" のパターンを用いると、"01/11/12" は A.D. 12 年 1 月 11 日に解釈されます。
短縮年パターン ("y" または "yy") で解析するときは、SimpleDateFormat
は特定の世紀に合わせて短縮年を解釈する必要があります。この解釈は、SimpleDateFormat
のインスタンスの生成前の 80 年以内から生成後の 20 年以内に日付を調整することによって行われます。たとえば、"MM/dd/yy" のパターンと 1997 年 1 月 1 日に生成された SimpleDateFormat
のインスタンスを使うと、"01/11/12" という文字列は 2012 年 1 月 11 日と解釈され、"05/04/64" という文字列は 1964 年 5 月 4 日と解釈されます。解析中は、Character.isDigit(char)
で定義された 2 桁を含む文字列のみがデフォルトの世紀に解析されます。1 桁の文字列、3 桁以上の文字列、あるいは数値以外を含む 2 桁の文字列 (-1 など) といったその他の数値文字列は、文字どおりに解釈されます。つまり、同じパターンを用いて "01/02/3" または "01/02/003" を解析すると、A.D. 3 年 1 月 2 日となります。同様に、"01/02/-3" は B.C. 4 年 1 月 2 日と解析されます。
GMTOffsetTimeZone:時は 0 〜 23、分は 00 〜 59 です。フォーマットはロケールに依存せず、数字は Unicode 標準の Basic Latin ブロックの数字でなければなりません。GMT
符号 時:
分 符号: 次のどちらか+ -
時: 数字 数字 数字 分: 数字 数字 数字: 次のうちの 1 つ0 1 2 3 4 5 6 7 8 9
解析には、RFC 822 タイムゾーンも受け付けられます。
RFC822TimeZone: 符号 TwoDigitHours 分 TwoDigitHours: 数字 数字TwoDigitHours は 00 〜 23 です。他の定義は一般的なタイムゾーンと同様です。
解析には、一般的なタイムゾーンも受け付けられます。
SimpleDateFormat
は地域対応された日付/時刻パターン文字列もサポートします。この文字列では、前述したパターン文字はロケール依存の他の文字パターンに置き換えられます。SimpleDateFormat
はパターン文字以外のテキストの地域対応を行いません。この地域対応は、クラスのクライアントによります。
日付/時刻パターン 結果 "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
日付フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに同時にアクセスする場合は、外部的に同期化する必要があります。
Calendar
,
TimeZone
,
DateFormat
,
DateFormatSymbols
,
直列化された形式入れ子クラスの概要 |
クラス java.text.DateFormat から継承した入れ子クラス |
DateFormat.Field |
クラス java.text.Format から継承した入れ子クラス |
Format.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.Format から継承したメソッド |
format, parseObject |
クラス java.lang.Object から継承したメソッド |
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public SimpleDateFormat()
SimpleDateFormat
を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat
クラスのファクトリメソッドを使用してください。
public SimpleDateFormat(String pattern)
SimpleDateFormat
を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、{@link DateFormat{@link クラスのファクトリメソッドを使用してください。
pattern
- 日付と時刻のフォーマットを記述するパターン
NullPointerException
- 指定されたパターンが null の場合
IllegalArgumentException
- 指定されたパターンが正しくない場合public SimpleDateFormat(String pattern, Locale locale)
SimpleDateFormat
を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、{@link DateFormat{@link クラスのファクトリメソッドを使用してください。
pattern
- 日付と時刻のフォーマットを記述するパターンlocale
- 日付フォーマット記号を使用するロケール
NullPointerException
- 指定されたパターンが null の場合
IllegalArgumentException
- 指定されたパターンが正しくない場合public SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
SimpleDateFormat
を構築します。
pattern
- 日付と時刻のフォーマットを記述するパターンformatSymbols
- フォーマットに使用する日付フォーマット記号
NullPointerException
- 指定されたパターンまたは formatSymbols が null の場合
IllegalArgumentException
- 指定されたパターンが正しくない場合メソッドの詳細 |
public void set2DigitYearStart(Date startDate)
startDate
- 解析中、2 桁年は startDate
〜 startDate + 100 年
の範囲に配置されるget2DigitYearStart()
public Date get2DigitYearStart()
set2DigitYearStart(java.util.Date)
public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
Date
を日付/時刻文字列にフォーマットし、指定された StringBuffer
に結果を追加します。
DateFormat
内の format
date
- 日付/時刻文字列にフォーマットする日付/時刻値toAppendTo
- 新しい日付/時刻テキストを追加する位置pos
- フォーマットする位置。入力では、必要であれば位置合わせフィールド。出力では、その位置合わせフィールドのオフセット
NullPointerException
- 指定された日付が null の場合public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator
を生成します。返された AttributedCharacterIterator
を使用すると、結果の String を構築できるとともに、結果の String についての情報を判定できます。
AttributedCharacterIterator の各属性キーは DateFormat.Field
型です。対応する属性値は属性キーと同一です。
Format
内の formatToCharacterIterator
obj
- フォーマットするオブジェクト
NullPointerException
- obj が null の場合
IllegalArgumentException
- 指定されたオブジェクトを Format でフォーマットできない場合、または Format のパターン文字列が無効な場合public Date parse(String text, ParsePosition pos)
Date
を生成します。
メソッドは pos
によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos
のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字を使用する必要はありません) のあとのインデックスに更新され、解析された日付が返されます。更新された pos
は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos
のインデックスは変更されず、エラーが発生した文字のインデックスに pos
のエラーインデックスが設定され、null が返されます。
DateFormat
内の parse
pos
- 上記のインデックスおよびエラーインデックス情報を持つ ParsePosition
オブジェクトtext
- 解析する日付/時刻文字列
Date
。エラーの場合は null
NullPointerException
- text
または pos
が null の場合DateFormat.setLenient(boolean)
public String toPattern()
public String toLocalizedPattern()
public void applyPattern(String pattern)
pattern
- この日付フォーマットのための新しい日付と時刻のパターン
NullPointerException
- 指定されたパターンが null の場合
IllegalArgumentException
- 指定されたパターンが正しくない場合public void applyLocalizedPattern(String pattern)
pattern
- この日付フォーマットのために新しい日付と時刻のフォーマットパターンへマップされる String
NullPointerException
- 指定されたパターンが null の場合
IllegalArgumentException
- 指定されたパターンが正しくない場合public DateFormatSymbols getDateFormatSymbols()
setDateFormatSymbols(java.text.DateFormatSymbols)
public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
newFormatSymbols
- 新しい日付と時刻のフォーマット記号
NullPointerException
- 指定された newFormatSymbols が null の場合getDateFormatSymbols()
public Object clone()
SimpleDateFormat
のコピーを作成します。また、フォーマットの日付フォーマット記号を複製します。
DateFormat
内の clone
SimpleDateFormat
の複製public int hashCode()
SimpleDateFormat
オブジェクトのハッシュコード値を返します。
DateFormat
内の hashCode
SimpleDateFormat
オブジェクトのハッシュコード値Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
SimpleDateFormat
が等しいかどうかを比較します。
DateFormat
内の equals
obj
- 比較対象の参照オブジェクト
SimpleDateFormat
と等しい場合は trueObject.hashCode()
,
Hashtable
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.