javax.mail.internet
クラス MailDateFormat

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

public final class MailDateFormat
extends SimpleDateFormat

2000 年 1 月 26 日付 draft-ietf-drums-msg-fmt-08 に基づき、 日付仕様をフォーマット及び構文解析します。これは RFC822 の対応仕様です。

このクラスはパターン文字列を使用しません。 常に下記の仕様に基づき日付をフォーマットします。

3.3 日付および時刻の仕様

日付と時刻はメッセージのいくつかのヘッダフィールドに現れます。 このセクションは完全な日付及び時刻仕様の構文を指定します。 日付と時刻仕様の全体で空白部分を折りたたむ事が認められていますが、 FWS が不可避の場合でも単一のスペースだけを使用し、 日付と時刻仕様で FWS がオプションの場合はスペースを使用しない事を推奨します。 以前の実装の一部では他の空白折りたたみの出現を正しく解釈できない場合があります。

date-time = [ day-of-week "," ] date FWS time [CFWS]

day-of-week = ([FWS] day-name) / obs-day-of-week

day-name = "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun"

date = day month year

year = 4*DIGIT / obs-year

month = (FWS month-name FWS) / obs-month

month-name = "Jan" / "Feb" / "Mar" / "Apr" /
             "May" / "Jun" / "Jul" / "Aug" /
             "Sep" / "Oct" / "Nov" / "Dec"
 

day = ([FWS] 1*2DIGIT) / obs-day

time = time-of-day FWS zone

time-of-day = hour ":" minute [ ":" second ]

hour = 2DIGIT / obs-hour

minute = 2DIGIT / obs-minute

second = 2DIGIT / obs-second

zone = (( "+" / "-" ) 4DIGIT) / obs-zone

day は月の何番目の日かを数字で示します。year は一般的な暦年を数字で示します。

time-of-day は指定された日付の午前零時を基準とする時、分、及びオプションとして秒を数字で指定します。

date と time-of-day は必ずローカルの時間を表さなければなりません。

zone は、date と time-of-day が表す Coordinated Universal Time (UTC、 正式には "グリニッジ標準時" と言います) からのオフセットを指定します。 "+" 又は "-" は time-of-day が Universal Time より進んでいるか遅れているかを示します。 最初の 2 桁は Universal Time との時間数の差を示し、 最後の 2 桁は Universal Time との分数の差を示します (従って、+hhmm は +(hh * 60 + mm) 分を、 -hhmm は -(hh * 60 + mm) 分をそれぞれ意味します)。 Universal Time のタイムゾーンを示すには "+0000" という形式を使用しなければなりません。 "-0000" も Universal Time を示しますが、 Universal Time とは異なるローカルタイムゾーンにあるシステムで生成された時間を示す為に使用されます。

date-time 仕様は意味的に有効でなければなりません。 つまり、day-of-the week (含まれる場合) は date で示される日でなければなりません。 数値の day-of-month は 1 と (指定された年の) 指定された月で許される日数との間になければなりません。 time-of-day は 00:00:00 から 23:59:60 (うるう年で許される秒数。[STD-12] を参照) の間になければなりません。 zone は -9959 から +9959 までの間になければなりません。

導入されたバージョン:
JavaMail 1.2
関連項目:
直列化された形式

入れ子のクラスの概要
 
クラス 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
 
コンストラクタの概要
MailDateFormat()
           
 
メソッドの概要
 StringBuffer format(Date date, StringBuffer dateStrBuf, FieldPosition fieldPosition)
          指定された日付を現在の TimeZone の draft-ietf-drums-msg-fmt-08 で指定される形式にフォーマットします。
 Date parse(String text, ParsePosition pos)
          指定された日付を現在の TimeZone の draft-ietf-drums-msg-fmt-08 で指定される形式で構文解析します。
 void setCalendar(Calendar newCalendar)
          カレンダーの設定は許可されません。
 void setNumberFormat(NumberFormat newNumberFormat)
          NumberFormat の設定は許可されません。
 
クラス java.text.SimpleDateFormat から継承されたメソッド
applyLocalizedPattern, applyPattern, clone, equals, formatToCharacterIterator, get2DigitYearStart, getDateFormatSymbols, hashCode, set2DigitYearStart, setDateFormatSymbols, toLocalizedPattern, toPattern
 
クラス java.text.DateFormat から継承されたメソッド
format, format, getAvailableLocales, getCalendar, getDateInstance, getDateInstance, getDateInstance, getDateTimeInstance, getDateTimeInstance, getDateTimeInstance, getInstance, getNumberFormat, getTimeInstance, getTimeInstance, getTimeInstance, getTimeZone, isLenient, parse, parseObject, setLenient, setTimeZone
 
クラス java.text.Format から継承されたメソッド
format, parseObject
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

MailDateFormat

public MailDateFormat()
メソッドの詳細

format

public StringBuffer format(Date date,
                           StringBuffer dateStrBuf,
                           FieldPosition fieldPosition)
指定された日付を現在の TimeZone の draft-ietf-drums-msg-fmt-08 で指定される形式にフォーマットします。

オーバーライド:
クラス SimpleDateFormat 内の format
パラメータ:
date - Date オブジェクト
dateStrBuf - フォーマットされた文字列
fieldPosition - 現在のフィールド位置
戻り値:
StringBuffer フォーマットされた String
導入されたバージョン:
JavaMail 1.2

parse

public Date parse(String text,
                  ParsePosition pos)
指定された日付を現在の TimeZone の draft-ietf-drums-msg-fmt-08 で指定される形式で構文解析します。

オーバーライド:
クラス SimpleDateFormat 内の parse
パラメータ:
text - 構文解析される形式化された日付
pos - 現在の構文解析位置
戻り値:
Date オブジェクト内の構文解析された日付
導入されたバージョン:
JavaMail 1.2

setCalendar

public void setCalendar(Calendar newCalendar)
カレンダーの設定は許可されません。

オーバーライド:
クラス DateFormat 内の setCalendar

setNumberFormat

public void setNumberFormat(NumberFormat newNumberFormat)
NumberFormat の設定は許可されません。

オーバーライド:
クラス DateFormat 内の setNumberFormat