全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.text.SimpleDateFormat

java.lang.Object
   |
   +----java.text.Format
           |
           +----java.text.DateFormat
                   |
                   +----java.text.SimpleDateFormat

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

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

時刻フォーマット構文:

時刻フォーマットを指定するには、time pattern文字列を使用します。このパターンでは、すべてのASCII文字がパターン文字として使用されます。この定義は次のとおりです。

 記号     意味                    表示                例
 ------   -------                 ------------        -------
 G        年号                    (テキスト)          AD
 y        年                      (数値)              1996
 M        月                      (テキスト & 数値)   July & 07
 d        日                      (数値)              10
 h        午前/午後の時 (1~12)    (数値)              12
 H        一日における時 (0~23)   (数値)              0
 m        分                      (数値)              30
 s        秒                      (数値)              55
 S        ミリ秒                  (数値)              978
 E        曜日                    (テキスト)          火曜日
 D        年における日            (数値)              189
 F        月における曜日          (数値)              2 (7月の第2水曜日)
 w        年における週            (数値)              27
 W        月における週            (数値)              2
 a        午前/午後               (テキスト)          PM
 k        一日における時 (1~24)   (数値)              24
 K        午前/午後の時 (0~11)    (数値)              0
 z        時間帯                  (テキスト)          PDT
 '        テキスト用エスケープ
 ''       単一引用符                                  '
 
パターン文字のカウントによって、そのフォーマットが決まります。

(テキスト): 4以上: フル形式を使用します。< 4: 短いまたは省力された形式があれば、それを使用します。

(数値): 最小桁数。これより短い数値は、この桁数までゼロが追加されます。年には特別な処理があります。つまり、'y'のカウントが2なら、年は2桁に短縮されます。

(テキスト & 数値): 3以上ならテキストを、それ以外なら数値を使用します。

パターンの文字が['a'..'z']と['A'..'Z']の範囲になければ、その文字は引用テキストとして扱われます。たとえば、':'、'.'、' '、'#'、'@'などの文字は、単一引用符に囲まれていなくても、結果の時刻テキストに使用されます。

無効なパターン文字がパターンに入っていると、フォーマットや解析で例外がスローされます。

USロケールを使った例:

 フォーマットパターン                   結果
 --------------------                   ----
 "yyyy.MM.dd G 'at' hh:mm:ss z"    ->>  1996.07.10 AD at 15:08:56 PDT
 "EEE, MMM d, ''yy"                ->>  Wed, July 10, '96
 "h:mm a"                          ->>  12:08 PM
 "hh 'o''''clock' a, zzzz"         ->>  12 o'clock PM, Pacific Daylight Time
 "K:mm a, z"                       ->>  0:00 PM, PST
 "yyyyy.MMMMM.dd GGG hh:mm aaa"    ->>  1996.July.10 AD 12:08 PM
 
コードサンプル:
 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, "PST");
 pdt.setStartRule(DateFields.APRIL, 1, DateFields.SUNDAY, 2*60*60*1000);
 pdt.setEndRule(DateFields.OCTOBER, -1, DateFields.SUNDAY, 2*60*60*1000);

// Format the current time. SimpleDateFormat formatter = new SimpleDateFormat ("yyyy.mm.dd e 'at' hh:mm:ss a zzz"); Date currentTime_1 = new Date(); String dateString = formatter.format(currentTime_1);
// Parse the previous string back into a Date. ParsePosition pos = new ParsePosition(0); Date currentTime_2 = formatter.parse(dateString, pos);
この例で、解析から得られた時刻値 currentTime_2currentTime_1と同じになります。しかし、「午前/午後の時」パターン記号を使用しているときに、フォーマットパターンから午前午後記号の'a'を省略すると、それらは同じにならないことがあります。この状態は、PMの時刻をフォーマットしているときに起こります。

名前のない時間帯の場合は、文字列 GMT+hours:minutesか GMT-hours:minutesを使用します。

週の最初の日、年の最初の週、時刻をゼロベースにするかどうか(0 対 12 または 24)、および時間帯は、カレンダで定義されます。すべての数値を扱うための共通の10進フォーマットが1つあります。その数字カウントは、パターンに従って決められたとおりに処理されます。

参照:
Calendar, GregorianCalendar, TimeZone, DateFormat, DateFormatSymbols, DecimalFormat

Constructor Index

 o SimpleDateFormat()
デフォルトロケールのデフォルトパターンを使ってSimpleDateFormatを構築します。
 o SimpleDateFormat(String)
デフォルトロケールの指定するパターンを使ってSimpleDateFormatを構築します。
 o SimpleDateFormat(String, DateFormatSymbols)
指定のパターンとロケール固有の記号データを使ってSimpleDateFormatを構築します。
 o SimpleDateFormat(String, Locale)
指定のパターンとロケールを使ってSimpleDateFormatを構築します。

Method Index

 o applyLocalizedPattern(String)
指定のローカル化されたパターン文字列を、この日付フォーマットに適用します。
 o applyPattern(String)
指定のローカル化されていないパターン文字列を、この日付フォーマットに適用します。
 o clone()
Cloneableをオーバーライドします。
 o equals(Object)
equalsをオーバーライドします。
 o format(Date, StringBuffer, FieldPosition)
DateFormatをオーバーライドします。

日付か時刻をフォーマットします。これは、24:00 GMT, Jan 1, 1970からの標準ミリ秒です。

 o getDateFormatSymbols()
日付/時刻フォーマット化データを入手します。
 o hashCode()
hashCodeをオーバーライドします。
 o parse(String, ParsePosition)
DateFormatをオーバーライドします。
 o setDateFormatSymbols(DateFormatSymbols)
日付/時刻のフォーマット化データを設定することができます。
 o toLocalizedPattern()
この日付フォーマットを記述するローカル化されたパターン文字列を返します。
 o toPattern()
この日付フォーマットを記述するパターン文字列を返します。

Constructors

 o SimpleDateFormat
  public SimpleDateFormat()
デフォルトロケールのデフォルトパターンを使ってSimpleDateFormatを構築します。注: すべてのロケールでSimpleDateFormatがサポートされるわけではありません。完全な汎用性をもたせるためには、DateFormatクラスのファクトリメソッドを使用してください。

参照:
DateFormat
 o SimpleDateFormat
  public SimpleDateFormat(String pattern)
デフォルトロケールの指定パターンを使ってSimpleDateFormatを構築します。注: すべてのロケールでSimpleDateFormatがサポートされるわけではありません。完全な汎用性をもたせるためには、DateFormatクラスのファクトリメソッドを使用してください。

 o SimpleDateFormat
  public SimpleDateFormat(String pattern,
                          Locale loc)
指定のパターンとロケールを使ってSimpleDateFormatを構築します。Note: すべてのロケールでSimpleDateFormatがサポートされるわけではありません。完全な汎用性をもたせるためには、DateFormatクラスのファクトリメソッドを使用してください。

 o SimpleDateFormat
  public SimpleDateFormat(String pattern,
                          DateFormatSymbols formatData)
指定のパターンとロケール固有の記号データを使ってSimpleDateFormatを構築します。

Methods

 o format
  public StringBuffer format(Date date,
                             StringBuffer toAppendTo,
                             FieldPosition pos)
DateFormat をオーバーライドします。

日付か時刻をフォーマットします。これは、24:00 GMT, Jan 1, 1970からの標準ミリ秒です。

USロケールを使った例: "yyyy.MM.dd e 'at' HH:mm:ss zzz" ->> 1996.07.10 AD at 15:08:56 PDT

パラメータ:
date - 日付/時刻文字列にフォーマットかする日付/時刻値
toAppendTo - 新しい日付/時刻テキストを追加する場所
pos - フォーマットする位置。入力では、必要なら位置合せフィールド。出力では、その位置合せフィールドのオフセット。
返り値:
フォーマットされた日付/時刻文字列。
オーバーライド:
クラス DateFormatformat
参照:
DateFormat
 o parse
  public Date parse(String text,
                    ParsePosition pos)
DateFormat をオーバーライドします。

オーバーライド:
クラス DateFormatparse
参照:
DateFormat
 o toPattern
  public String toPattern()
この日付フォーマットを記述するパターン文字列を返します。

 o toLocalizedPattern
  public String toLocalizedPattern()
この日付フォーマットのローカル化されたパターン文字列を返します。

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

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

 o getDateFormatSymbols
  public DateFormatSymbols getDateFormatSymbols()
日付/時刻フォーマット化データを入手します。

返り値:
この日付/時刻フォーマッタに対応する日付/時刻フォーマット化データのコピー。
 o setDateFormatSymbols
  public void setDateFormatSymbols(DateFormatSymbols newFormatSymbols)
日付/時刻フォーマット化データを設定することができます。

パラメータ:
newFormatData - 指定する日付/時刻フォーマット化データ。
 o clone
  public Object clone()
Cloneableをオーバーライドします。

オーバーライド:
クラス DateFormatclone
 o hashCode
  public int hashCode()
hashCodeをオーバーライドします。SimpleDateFormatオブジェクトのハッシュコードを生成します。

オーバーライド:
クラス DateFormathashCode
 o equals
  public boolean equals(Object obj)
equalsをオーバーライドします。

オーバーライド:
クラス DateFormatequals

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス