|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.util.Date
クラス Date
は、特定の時点を表すもので、その精度はミリ秒です。
JDK 1.1 より前のクラス Date
には、2 つの追加機能がありました。まず、日付を年、月、日、時、分、秒の値として解釈することができました。さらに、日付文字列のフォーマットを解析することができました。しかし、これらの機能の API は、各国語に対応するものではありませんでした。JDK 1.1 では、日付と時間フィールドの間の変換には Calendar
クラスを、日付文字列のフォーマットと解析には DateFormat
クラスをそれぞれ使用してください。Date
の対応するメソッドは推奨されません。
Date
クラスは、UTC (Universal Coordinate Time) を反映することを意図していますが、Java Virtual Machine のホスト環境によってはこれを正確に行えない可能性があります。ほとんどすべての最近のオペレーティングシステムは、あらゆる場合において 1 day = 24 * 60 * 60 = 86400 秒と仮定しています。しかし、UTC においては毎年約 1 回か 2 回「うるう秒」と呼ばれる余分な秒が発生します。うるう秒は常にその日の最後の秒として追加され、それは常に 12 月 31 日かまたは 6 月 30 日です。たとえば、1995 年の最後の分は、うるう秒の追加により長さが 61 秒でした。ほとんどのコンピュータのクロックは、うるう秒の違いを反映できるほど正確ではありません。
コンピュータ標準のいくつかは、GMT (Greenwich Mean Time、グリニッジ標準時) によって定義されています。これは UT (Universal Time) と同等です。GMT はこの標準の「一般的な」名前です。UT は、この標準の「科学的な」名前です。UTC と UT の違いは、UTC が原子時計に基づくのに対して、UT は天文学的な観測に基づくことです。これは実用的な目的からするとほとんど違いはありません。地球の自転は一定ではないので (地球は複雑に遅くなったり速くなったりします)、UT は常に一定に流れるわけではありません。うるう秒は、UTC を UT1 の 0.9 秒以内に維持する必要があって UTC に導入されました。この UT1 は UT のバージョンである訂正が施されています。同様に他にも時間と日付のシステムがあります。 たとえば、衛星ベースの GPS (Global Positioning System、地球位置確認システム) は UTC に同期していますが、うるう秒の調整はされません。詳細情報のソースには U.S. Naval Observatory (米国海軍天文台) があり、特に次の「Directorate of Time」、
http://tycho.usno.navy.mil
および次の「Systems of Time」の定義を参照してください。
http://tycho.usno.navy.mil/systime.html
年、月、日、時間、分、秒の値を受け取るか返すクラス Date のすべてのメソッドにおいて、次の表示が使用されます。
- 1900
によって表される
すべての場合において、この目的でメソッドに与えられた引数は指定された範囲に入る必要はありません。たとえば、日付を 1 月 32 日として指定した場合は、2 月 1 日と解釈されます。
DateFormat
,
Calendar
,
TimeZone
, 直列化された形式コンストラクタの概要 | |
Date()
Date オブジェクトを割り当て、初期化します。 |
|
Date(int year,
int month,
int date)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(year + 1900, month, date) または GregorianCalendar(year + 1900, month, date) に置き換えられました。 |
|
Date(int year,
int month,
int date,
int hrs,
int min)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(year + 1900, month, date, hrs, min) または GregorianCalendar(year + 1900, month, date, hrs, min) に置き換えられました。 |
|
Date(int year,
int month,
int date,
int hrs,
int min,
int sec)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(year + 1900, month, date, hrs, min, sec) または GregorianCalendar(year + 1900, month, date, hrs, min, sec) に置き換えられました。 |
|
Date(long date)
Date オブジェクトを割り当て、初期化します。 |
|
Date(String s)
推奨されません。 JDK バージョン 1.1 以降は、 DateFormat.parse(String s) に置き換えられました。 |
メソッドの概要 | |
boolean |
after(Date when)
この日付が、指定された日付より後にあるかどうかを判定します。 |
boolean |
before(Date when)
この日付が、指定された日付より前にあるかどうかを判定します。 |
Object |
clone()
このオブジェクトのコピーを返します。 |
int |
compareTo(Date anotherDate)
順序付けのために 2 つの Date を比較します。 |
int |
compareTo(Object o)
Date を別の Object と比較します。 |
boolean |
equals(Object obj)
2 つの日付が等しいかどうかを比較します。 |
int |
getDate()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.DAY_OF_MONTH) に置き換えられました。 |
int |
getDay()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.DAY_OF_WEEK) に置き換えられました。 |
int |
getHours()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.HOUR_OF_DAY) に置き換えられました。 |
int |
getMinutes()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.MINUTE) に置き換えられました。 |
int |
getMonth()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.MONTH) に置き換えられました。 |
int |
getSeconds()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.SECOND) に置き換えられました。 |
long |
getTime()
Date オブジェクトで表される、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数を返します。 |
int |
getTimezoneOffset()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET) に置き換えられました。 |
int |
getYear()
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.get(Calendar.YEAR) - 1900 に置き換えられました。 |
int |
hashCode()
このオブジェクトに対するハッシュコード値を返します。 |
static long |
parse(String s)
推奨されません。 JDK バージョン 1.1 以降は、 DateFormat.parse(String s) に置き換えられました。 |
void |
setDate(int date)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(Calendar.DAY_OF_MONTH, int date) に置き換えられました。 |
void |
setHours(int hours)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(Calendar.HOUR_OF_DAY, int hours) に置き換えられました。 |
void |
setMinutes(int minutes)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(Calendar.MINUTE, int minutes) に置き換えられました。 |
void |
setMonth(int month)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(Calendar.MONTH, int month) に置き換えられました。 |
void |
setSeconds(int seconds)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(Calendar.SECOND, int seconds) に置き換えられました。 |
void |
setTime(long time)
Date オブジェクトを、1970 年 1 月 1 日 00:00:00 GMT から time ミリ秒の時点を表すように設定します。 |
void |
setYear(int year)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(Calendar.YEAR, year + 1900) に置き換えられました。 |
String |
toGMTString()
推奨されません。 JDK バージョン 1.1 以降は、GMT TimeZone を使用することにより、DateFormat.format(Date date) に置き換えられました。 |
String |
toLocaleString()
推奨されません。 JDK バージョン 1.1 以降は、 DateFormat.format(Date date) に置き換えられました。 |
String |
toString()
Date オブジェクトを次の形式の String に変換します。
|
static long |
UTC(int year,
int month,
int date,
int hrs,
int min,
int sec)
推奨されません。 JDK バージョン 1.1 以降は、 Calendar.set(year + 1900, month, date, hrs, min, sec) or GregorianCalendar(year + 1900, month, date, hrs, min, sec) に置き換えられました。UTC TimeZone を使用し、Calendar.getTime().getTime() があとに続きます。 |
クラス java.lang.Object から継承したメソッド |
finalize,
getClass,
notify,
notifyAll,
wait,
wait,
wait |
コンストラクタの詳細 |
public Date()
System.currentTimeMillis()
public Date(long date)
Date
オブジェクトを割り当て、初期化します。これによって、このオブジェクトは、「エポック」(すなわち、1970 年 1 月 1 日 00:00:00 GMT) である標準時からの指定されたミリ秒数を表します。date
- 1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数System.currentTimeMillis()
public Date(int year, int month, int date)
Calendar.set(year + 1900, month, date)
または GregorianCalendar(year + 1900, month, date)
に置き換えられました。Date
オブジェクトを割り当て、初期化します。これによって、このオブジェクトは、ローカル時間の真夜中を表します。これは、year
、month
、date
引数で指定された日の始めです。year
- 年から 1900 を引いたものmonth
- 0 〜 11 の月date
- 1 〜 11 の月の日Calendar
public Date(int year, int month, int date, int hrs, int min)
Calendar.set(year + 1900, month, date, hrs, min)
または GregorianCalendar(year + 1900, month, date, hrs, min)
に置き換えられました。Date
オブジェクトを割り当て、それを初期化します。これによって、オブジェクトは year
、month
、date
、hrs
、および min
引数で指定された分の開始時点をローカルタイムゾーンで表します。year
- 年から 1900 を引いたものmonth
- 0 〜 11 の月date
- 1 〜 31 の月の日hrs
- 0 〜 23 の時min
- 0 〜 59 の分Calendar
public Date(int year, int month, int date, int hrs, int min, int sec)
Calendar.set(year + 1900, month, date, hrs, min, sec)
または GregorianCalendar(year + 1900, month, date, hrs, min, sec)
に置き換えられました。Date
オブジェクトを割り当て、それを初期化します。これによって、オブジェクトは year
、month
、date
、hrs
、min
、および sec
引数で指定された秒の開始時点をローカルタイムゾーンで表します。year
- 年から 1900 を引いたものmonth
- 0 〜 11 の月date
- 1 〜 31 の月の日hrs
- 0 〜 23 の時min
- 0 〜 59 の分sec
- 0 〜 59 の秒Calendar
public Date(String s)
DateFormat.parse(String s)
に置き換えられました。Date
オブジェクトを割り当て、初期化します。これによって、このオブジェクトは、文字列 s
に指定された日付と時刻に初期化されます。これは、parse(java.lang.String)
メソッドで解釈されるのと同じように解釈されます。s
- 日付の文字列表現DateFormat
,
parse(java.lang.String)
メソッドの詳細 |
public Object clone()
public static long UTC(int year, int month, int date, int hrs, int min, int sec)
Calendar.set(year + 1900, month, date, hrs, min, sec)
or GregorianCalendar(year + 1900, month, date, hrs, min, sec)
に置き換えられました。UTC TimeZone
を使用し、Calendar.getTime().getTime()
があとに続きます。year
- 年から 1900 を引いたものmonth
- 0 〜 11 の月date
- 1 〜 31 の月の日hrs
- 0 〜 23 の時min
- 0 〜 59 の分sec
- 0 〜 59 の秒Calendar
public static long parse(String s)
DateFormat.parse(String s)
に置き換えられました。多くの構文が可能です。IETF 標準日付構文 Sat, 12 Aug 1995 13:30:00 GMT が認識されます。さらに、米国大陸のタイムゾーン省略形が認識されますが、一般的な使用では、タイムゾーンオフセット Sat, 12 Aug 1995 13:30:00 GMT+0430 (グリニッジ子午線の西、4 時間 30 分) を使用してください。タイムゾーンを指定しないと、ローカルタイムゾーンが使用されます。GMT と UTC は同等と見なされます。
文字列 s は、対象のデータを探しながら、左から右に向かって処理されます。s の中で ASCII 括弧文字「( )」で囲まれているものは無視されます。括弧は入れ子にできます。括弧以外で、s 内で許可される文字は以下の ASCII 文字だけです。
および空白文字abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789,+-:/
10 進数の連続は 10 進数として処理されます。
文字の連続は単語と見なされ、以下のように処理されます。
文字列 s の全体が走査されると、それは 2 つの方法のどちらかで時間に変換されます。タイムゾーンまたはタイムゾーンオフセットが認識されている場合、年、月、日、時、分、および秒は UTC で解釈され、タイムゾーンオフセットが適用されます。そうでない場合、年、月、日、時、分、および秒はローカルタイムゾーンで解釈されます。
s
- 日付として解析される文字列DateFormat
public int getYear()
Calendar.get(Calendar.YEAR) - 1900
に置き換えられました。Date
オブジェクトで表される時点を含むかまたはその時点で始まる年から 1900 を引いた結果の値を、ローカルタイムゾーンで解釈して返します。Calendar
public void setYear(int year)
Calendar.set(Calendar.YEAR, year + 1900)
に置き換えられました。Date
オブジェクトは、指定された年のある時点を、以前と同じように月、日、時、分、および秒を使用してローカルタイムゾーンで表すように変更されます。たとえば日付が 2 月 29 日だった場合、年はうるう年ではないと設定され、新しい日付は 3 月 1 日として処理されます。year
- 年の値Calendar
public int getMonth()
Calendar.get(Calendar.MONTH)
に置き換えられました。0
と 11
の間であり、値 0
は 1 月を表します。Calendar
public void setMonth(int month)
Calendar.set(Calendar.MONTH, int month)
に置き換えられました。month
- 0 〜 11 の月の値Calendar
public int getDate()
Calendar.get(Calendar.DAY_OF_MONTH)
に置き換えられました。1
と 31
の間になります。Calendar
public void setDate(int date)
Calendar.set(Calendar.DAY_OF_MONTH, int date)
に置き換えられました。date
- 1 〜 31 の月の日の値Calendar
public int getDay()
Calendar.get(Calendar.DAY_OF_WEEK)
に置き換えられました。Calendar
public int getHours()
Calendar.get(Calendar.HOUR_OF_DAY)
に置き換えられました。Calendar
public void setHours(int hours)
Calendar.set(Calendar.HOUR_OF_DAY, int hours)
に置き換えられました。hours
- 時の値Calendar
public int getMinutes()
Calendar.get(Calendar.MINUTE)
に置き換えられました。0
〜 59
です。Calendar
public void setMinutes(int minutes)
Calendar.set(Calendar.MINUTE, int minutes)
に置き換えられました。minutes
- 分の値Calendar
public int getSeconds()
Calendar.get(Calendar.SECOND)
に置き換えられました。0
〜 61
です。値 60
および 61
は、うるう年を考慮する Java Virtual Machine だけで発生します。Calendar
public void setSeconds(int seconds)
Calendar.set(Calendar.SECOND, int seconds)
に置き換えられました。seconds
- 秒の値Calendar
public long getTime()
public void setTime(long time)
time
- ミリ秒数public boolean before(Date when)
when
- 日付true
、そうでない場合は false
public boolean after(Date when)
when
- 日付true
、そうでない場合は false
public boolean equals(Object obj)
null
ではなく、かつ、このオブジェクトとミリ秒まで同じ時点を表す Date
オブジェクトであれば、true
を返します。
したがって、2 つの Date
オブジェクトは、getTime
メソッドが両方に対して同じ long
を返す場合だけ等しいものと見なされます。
obj
- 比較対象のオブジェクトtrue
、そうでない場合は、false
getTime()
public int compareTo(Date anotherDate)
anotherDate
- 比較対象の Date
0
。この Date が引数 Date より前の場合は 0
より小さい値。この Date が引数 Date より後の場合は 0
より大きい値public int compareTo(Object o)
compareTo(Date)
と同様です。そうでない場合は、ClassCastException
をスローします (Date はほかの Date とだけ比較できるため)。o
- 比較対象の Object
0
。引数がこの Date より後の Date の場合は 0
より小さい値。引数がこの Date の前の Date の場合は 0
より大きい値Date
ではない場合Comparable
public int hashCode()
getTime()
メソッドによって返されるプリミティブ long 値の 2 つの半分の排他的論理和です。すなわち、ハッシュコードは次の式の値です。
(int)(this.getTime()^(this.getTime() >>> 32))
public String toString()
Date
オブジェクトを次の形式の String
に変換します。
以下にそれぞれの意味を示します。dow mon dd hh:mm:ss zzz yyyy
toLocaleString()
,
toGMTString()
public String toLocaleString()
DateFormat.format(Date date)
に置き換えられました。strftime()
機能によってサポートされる "%c
" フォーマットの場合と同様です。DateFormat
,
toString()
,
toGMTString()
public String toGMTString()
TimeZone
を使用することにより、DateFormat.format(Date date)
に置き換えられました。以下にそれぞれの意味を示します。d mon yyyy hh:mm:ss GMT
結果はローカルタイムゾーンに依存しません。
DateFormat
,
toString()
,
toLocaleString()
public int getTimezoneOffset()
Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)
に置き換えられました。次に、グリニッジの西 5 時間ゾーンの Massachusetts の例を示します。
1996 年 2 月 14 日のため、標準時 (東部標準時) が使用されています。オフセットは、UTC から 5 時間です。new Date(96, 1, 14).getTimezoneOffset() returns 300
1996 年 5 月 1 日のため、夏時間 (東部夏時間) が使用されています。オフセットは、UTC から 4 時間だけです。new Date(96, 5, 1).getTimezoneOffset() returns 240
このメソッドは計算したかのように同じ結果を生成します。
(this.getTime() - UTC(this.getYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds())) / (60 * 1000)
Calendar
,
TimeZone
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |