public class SimpleDateFormat extends DateFormat
SimpleDateFormat
は、日付のフォーマットと解析を、ロケールを考慮して行うための具象クラスです。フォーマット(日付→テキスト)、解析(テキスト→日付)および正規化を行うことができます。
SimpleDateFormat
を使うと、日付時刻フォーマットのユーザー定義パターンを選択することによって、とりあえず使用を開始することができます。しかし、できるだけ、DateFormat
のgetTimeInstance
、getDateInstance
、またはgetDateTimeInstance
で日付時刻フォーマッタを作成するようにしてください。これらのクラス・メソッドはいずれも、デフォルト・フォーマット・パターンで初期化された日付時刻フォーマッタを返すことができます。フォーマット・パターンは、必要に応じて、applyPattern
メソッドを使って修正することができます。これらのメソッドの使い方については、DateFormat
を参照してください。
日時フォーマットは日時パターン文字列で指定されます。日時パターン文字列内では、引用符で囲まれていない'A'
- 'Z'
および'a'
- 'z'
は、日付または時間文字列のコンポーネントを表すパターン文字として解釈されます。テキストは単一引用符('
)で囲むことで解釈を回避できます。"''"
は単一引用符を表します。ほかのすべての文字は解釈されず、フォーマット中に出力文字列へ単純にコピーされるか、解析中に入力文字列に対して一致させられます。
次のパターン文字が定義されます(ほかの'A'
- 'Z'
および'a'
- 'z'
のすべての文字は予約済み)。
パターン文字は、その数で正確な表現が決まるため、通常繰り返されます。
文字 日付または時刻のコンポーネント 表示 例 G
紀元 テキスト AD
y
年 年 1996
;96
Y
暦週の基準年 年 2009
;09
M
年における月(状況依存) 月 July
;Jul
;07
L
年における月(スタンドアロン形式) 月 July
;Jul
;07
w
年における週 数値 27
W
月における週 数値 2
D
年における日 数値 189
d
月における日 数値 10
F
月における曜日 数値 2
E
曜日の名前 テキスト Tuesday
;Tue
u
曜日の番号(1 =月曜、...、7 =日曜) 数値 1
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
X
タイムゾーン ISO 8601タイムゾーン -08
;-0800
;-08:00
Calendar
がグレゴリオ暦の場合は、次に示すルールが適用されます。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日と解析されます。
'Y'
が指定され、カレンダが暦週の基準年をサポートしていない場合は、代わりにカレンダの年('y'
)が使用されます。getCalendar()
.isWeekDateSupported()
を呼び出すと、暦週の基準年のサポートをテストできます。DateFormatSymbols
がコンストラクタSimpleDateFormat(String, DateFormatSymbols)
またはメソッドsetDateFormatSymbols(DateFormatSymbols)
を使用して明示的に設定されている場合、DateFormatSymbols
によって指定された月の名前が使用されます。GMTOffsetTimeZone:時は0 - 23、分は00 - 59です。フォーマットはロケールに依存せず、数字はUnicode標準のBasic Latinブロックの数字である必要があります。GMT
Sign Hours:
Minutes Sign: one of+ -
Hours: Digit Digit Digit Minutes: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
解析には、RFC 822タイムゾーンも受け入れられます。
RFC822TimeZone: Sign TwoDigitHours Minutes TwoDigitHours: Digit DigitTwoDigitHoursは00 - 23です。ほかの定義は一般的なタイムゾーンと同様です。
解析には、一般的なタイムゾーンも受け入れられます。
ISO8601TimeZone: OneLetterISO8601TimeZone TwoLetterISO8601TimeZone ThreeLetterISO8601TimeZone OneLetterISO8601TimeZone: Sign TwoDigitHoursほかの定義は一般的なタイムゾーンやRFC 822タイムゾーンと同様です。Z
TwoLetterISO8601TimeZone: Sign TwoDigitHours MinutesZ
ThreeLetterISO8601TimeZone: Sign TwoDigitHours:
MinutesZ
フォーマットでは、GMTからのオフセット値が0の場合に"Z"
が生成されます。パターン文字の数が1の場合は、1時間の端数は無視されます。たとえば、パターンが"X"
で、タイムゾーンが"GMT+05:30"
の場合、"+05"
が生成されます。
解析では、UTCタイムゾーン指示子として"Z"
が解析されます。一般的なタイムゾーンは受け入れられません。
パターン文字数が4以上の場合、SimpleDateFormat
を構築するかパターンを適用すると、IllegalArgumentException
がスローされます。
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
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
2001-07-04T12:08:56.235-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u"
2001-W27-3
日付フォーマットは同期化されません。スレッドごとに別のフォーマット・インスタンスを作成することをお薦めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
Calendar
, TimeZone
, DateFormat
, DateFormatSymbols
, 直列化された形式DateFormat.Field
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()
デフォルトの
FORMAT ロケールのデフォルト・パターンと日付フォーマット記号を使ってSimpleDateFormat を構築します。 |
SimpleDateFormat(String pattern)
指定されたパターンとデフォルトの
FORMAT ロケールのデフォルト日付フォーマット記号を使って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()
この日付フォーマットを記述するパターン文字列を返します。
|
format, format, getAvailableLocales, getCalendar, getDateInstance, getDateInstance, getDateInstance, getDateTimeInstance, getDateTimeInstance, getDateTimeInstance, getInstance, getNumberFormat, getTimeInstance, getTimeInstance, getTimeInstance, getTimeZone, isLenient, parse, parseObject, setCalendar, setLenient, setNumberFormat, setTimeZone
format, parseObject
public SimpleDateFormat()
FORMAT
ロケールのデフォルト・パターンと日付フォーマット記号を使ってSimpleDateFormat
を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat
クラスのファクトリ・メソッドを使用してください。public SimpleDateFormat(String pattern)
FORMAT
ロケールのデフォルト日付フォーマット記号を使ってSimpleDateFormat
を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat
クラスのファクトリ・メソッドを使用してください。
これは、SimpleDateFormat(pattern, Locale.getDefault(Locale.Category.FORMAT))
の呼び出しと同等です。
pattern
- 日付と時刻のフォーマットを記述するパターンNullPointerException
- 指定されたパターンがnullの場合IllegalArgumentException
- 指定されたパターンが無効な場合Locale.getDefault(java.util.Locale.Category)
、Locale.Category.FORMAT
public SimpleDateFormat(String pattern, Locale locale)
SimpleDateFormat
を構築します。注: このコンストラクタはすべてのロケールをサポートするわけではありません。すべてをカバーするには、DateFormat
クラスのファクトリ・メソッドを使用してください。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 years
の範囲に配置される。get2DigitYearStart()
public Date get2DigitYearStart()
set2DigitYearStart(java.util.Date)
public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
Date
を日付/時間文字列にフォーマットし、指定されたStringBuffer
に結果を付加します。format
、クラス: DateFormat
date
- 日付/時間文字列にフォーマットする日付/時間値。toAppendTo
- 新しい日付/時間テキストを付加する位置。pos
- フォーマットする位置。入力では、必要であれば位置合わせフィールド。出力では、その位置合わせフィールドのオフセット。NullPointerException
- 指定されたdate
がnull
である場合。public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator
を生成します。返されたAttributedCharacterIterator
を使用すると、結果のStringを構築できるとともに、結果のStringについての情報を判定できます。
AttributedCharacterIteratorの各属性キーはDateFormat.Field
型です。対応する属性値は属性キーと同一です。
formatToCharacterIterator
、クラス: Format
obj
- フォーマットするオブジェクトNullPointerException
- objがnullの場合。IllegalArgumentException
- 指定されたオブジェクトをFormatでフォーマットできない場合、またはFormatのパターン文字列が無効な場合。public Date parse(String text, ParsePosition pos)
Date
を生成します。
メソッドはpos
によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos
のインデックスは、使用された最後の文字(解析では、文字列の最後までのすべての文字が使用されるとは限らない)のあとのインデックスに更新され、解析された日付が返されます。更新されたpos
は、このメソッドの次の呼出しの開始点を示すのに使用できます。エラーが発生した場合は、pos
のインデックスは変更されず、エラーが発生した文字のインデックスにpos
のエラー・インデックスが設定され、nullが返されます。
この解析操作は、calendar
を使用してDate
を生成します。calendar
の日時フィールドはすべて解析前にクリアされ、日時情報が不足する場合は、calendar
の日時フィールドのデフォルト値が使用されます。たとえば、解析操作によって年の値が取得されない場合、解析されたDate
の年の値は、GregorianCalendar
を使って1970となります。text
に指定されたパターンやタイムゾーンによっては、TimeZone
の値が上書きされる可能性があります。さらに操作を行うには、setTimeZone
の呼出しによってすでに設定されているTimeZone
値の復元が必要になることもあります。
parse
、クラス: DateFormat
text
- 部分的に解析されるString
。pos
- 上記のインデックスおよびエラー・インデックス情報を持つParsePosition
オブジェクトDate
。エラーの場合はnullを返す。NullPointerException
- text
またはpos
がnullの場合。public String toPattern()
public String toLocalizedPattern()
public void applyPattern(String pattern)
pattern
- この日付フォーマットのための新しい日付と時刻のパターンNullPointerException
- 指定されたパターンがnullの場合IllegalArgumentException
- 指定されたパターンが無効な場合public void applyLocalizedPattern(String pattern)
pattern
- このフォーマットの新しい日付と時刻のフォーマット・パターンにマップするStringNullPointerException
- 指定されたパターンがnullの場合IllegalArgumentException
- 指定されたパターンが無効な場合public DateFormatSymbols getDateFormatSymbols()
setDateFormatSymbols(java.text.DateFormatSymbols)
public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
newFormatSymbols
- 新しい日付と時刻のフォーマット記号NullPointerException
- 指定されたnewFormatSymbolsがnullの場合getDateFormatSymbols()
public Object clone()
SimpleDateFormat
のコピーを作成します。また、フォーマットの日付フォーマット記号を複製します。clone
、クラス: DateFormat
SimpleDateFormat
の複製Cloneable
public int hashCode()
SimpleDateFormat
オブジェクトのハッシュ・コード値を返します。hashCode
、クラス: DateFormat
SimpleDateFormat
オブジェクトのハッシュ・コード値。Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
SimpleDateFormat
が等しいかどうかを比較します。equals
、クラス: DateFormat
obj
- 比較対象の参照オブジェクト。SimpleDateFormat
と等しい場合はtrueObject.hashCode()
、HashMap
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.