public class Date extends Object implements Serializable, Cloneable, Comparable<Date>
Date
は、特定の時点を表すもので、その精度はミリ秒です。
JDK 1.1 より前の Date
クラスには、2 つの追加機能がありました。まず、日付を年、月、日、時、分、秒の値として解釈することができました。さらに、日付文字列のフォーマットを構文解析することができました。しかし、これらの機能の API は国際化の対象にはなりませんでした。JDK 1.1 からは、日付と時間フィールドの間の変換には Calendar
クラスを、日付文字列のフォーマットと構文解析には DateFormat
クラスをそれぞれ使用する必要があります。Date
の対応するメソッドは非推奨です。
Date
クラスは、UTC (Universal Coordinate Time) を反映することを意図していますが、Java 仮想マシンのホスト環境によってはこれを正確に行えない可能性があります。ほとんどすべての最新のオペレーティングシステムは、あらゆる場合において 1 日 = 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 version 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 version 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 version 1.1 以降は、
Calendar.set(year + 1900, month, date, hrs, min, sec) または GregorianCalendar(year + 1900, month, date, hrs, min, sec) に置き換えられています。 |
Date(long date)
Date オブジェクトを割り当て、初期化します。これによって、このオブジェクトは、「元期」(すなわち 1970 年 1 月 1 日 00:00:00 GMT) である標準時からの指定されたミリ秒数を表します。 |
Date(String s)
非推奨。
JDK version 1.1 以降は、
DateFormat.parse(String s) に置き換えられています。 |
修飾子と型 | メソッドと説明 |
---|---|
boolean |
after(Date when)
この日付が、指定された日付より後にあるかどうかを判定します。
|
boolean |
before(Date when)
この日付が、指定された日付より前にあるかどうかを判定します。
|
Object |
clone()
このオブジェクトのコピーを返します。
|
int |
compareTo(Date anotherDate)
順序付けのために 2 つの Date を比較します。
|
boolean |
equals(Object obj)
2 つの日付が等しいかどうかを比較します。
|
int |
getDate()
非推奨。
JDK version 1.1 以降は、
Calendar.get(Calendar.DAY_OF_MONTH) に置き換えられています。 |
int |
getDay()
非推奨。
JDK version 1.1 以降は、
Calendar.get(Calendar.DAY_OF_WEEK) に置き換えられています。 |
int |
getHours()
非推奨。
JDK version 1.1 以降は、
Calendar.get(Calendar.HOUR_OF_DAY) に置き換えられています。 |
int |
getMinutes()
非推奨。
JDK version 1.1 以降は、
Calendar.get(Calendar.MINUTE) に置き換えられています。 |
int |
getMonth()
非推奨。
JDK version 1.1 以降は、
Calendar.get(Calendar.MONTH) に置き換えられています。 |
int |
getSeconds()
非推奨。
JDK version 1.1 以降は、
Calendar.get(Calendar.SECOND) に置き換えられています。 |
long |
getTime()
Date オブジェクトで表される、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数を返します。
|
int |
getTimezoneOffset()
非推奨。
JDK version 1.1 以降は、
-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000) に置き換えられています。 |
int |
getYear()
非推奨。
JDK version 1.1 以降は、
Calendar.get(Calendar.YEAR) - 1900 に置き換えられています。 |
int |
hashCode()
このオブジェクトに対するハッシュコード値を返します。
|
static long |
parse(String s)
非推奨。
JDK version 1.1 以降は、
DateFormat.parse(String s) に置き換えられています。 |
void |
setDate(int date)
非推奨。
JDK version 1.1 以降は、
Calendar.set(Calendar.DAY_OF_MONTH, int date) に置き換えられています。 |
void |
setHours(int hours)
非推奨。
JDK version 1.1 以降は、
Calendar.set(Calendar.HOUR_OF_DAY, int hours) に置き換えられています。 |
void |
setMinutes(int minutes)
非推奨。
JDK version 1.1 以降は、
Calendar.set(Calendar.MINUTE, int minutes) に置き換えられています。 |
void |
setMonth(int month)
非推奨。
JDK version 1.1 以降は、
Calendar.set(Calendar.MONTH, int month) に置き換えられています。 |
void |
setSeconds(int seconds)
非推奨。
JDK version 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 version 1.1 以降は、
Calendar.set(Calendar.YEAR, year + 1900) に置き換えられています。 |
String |
toGMTString()
非推奨。
JDK version 1.1 以降は、GMT
TimeZone を使用する DateFormat.format(Date date) に置き換えられています。 |
String |
toLocaleString()
非推奨。
JDK version 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 Version 1.1 以降は、
Calendar.set(year + 1900, month, date, hrs, min, sec) または GregorianCalendar(year + 1900, month, date, hrs, min, sec) に置き換えられています。UTC TimeZone を使用し、Calendar.getTime().getTime() があとに続きます。 |
public Date()
Date
オブジェクトを割り当て、初期化します。これによって、このオブジェクトは、割り当てられたときの時刻を、もっとも近いミリ秒単位で表します。public Date(long date)
Date
オブジェクトを割り当て、初期化します。これによって、このオブジェクトは、「元期」(すなわち 1970 年 1 月 1 日 00:00:00 GMT) である標準時からの指定されたミリ秒数を表します。date
- 1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数。System.currentTimeMillis()
@Deprecated 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 - 31 の月の日。Calendar
@Deprecated 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
@Deprecated 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
@Deprecated public Date(String s)
DateFormat.parse(String s)
に置き換えられています。Date
オブジェクトを割り当て、初期化します。これによって、このオブジェクトは、文字列 s
に指定された日付と時刻に初期化されます。これは、parse(java.lang.String)
メソッドで解釈されるのと同じように解釈されます。s
- 日付の文字列表現。DateFormat
、parse(java.lang.String)
public Object clone()
@Deprecated 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)
または 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
@Deprecated 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 進数として処理されます。
SimpleDateFormat
で使用される 100 より少ない年の解釈とは少し異なります。
文字の連続は単語とみなされ、以下のように処理されます。
文字列 s の全体が走査されると、それは 2 つの方法のどちらかで時間に変換されます。タイムゾーンまたはタイムゾーンオフセットが認識されている場合、年、月、日、時、分、および秒は UTC で解釈され、タイムゾーンオフセットが適用されます。そうでない場合、年、月、日、時、分、および秒はローカルタイムゾーンで解釈されます。
s
- 日付として解析される文字列。DateFormat
@Deprecated public int getYear()
Calendar.get(Calendar.YEAR) - 1900
に置き換えられています。Date
オブジェクトで表される時点を含むかまたはその時点で始まる年から 1900 を引いた結果の値を、ローカルタイムゾーンで解釈して返します。Calendar
@Deprecated public void setYear(int year)
Calendar.set(Calendar.YEAR, year + 1900)
に置き換えられています。Date
オブジェクトは、指定された年のある時点を、以前と同じように月、日、時、分、および秒を使用してローカルタイムゾーンで表すように変更されます。たとえば日付が 2 月 29 日だった場合、年はうるう年ではないと設定され、新しい日付は 3 月 1 日として処理されます。year
- 年の値。Calendar
@Deprecated public int getMonth()
Calendar.get(Calendar.MONTH)
に置き換えられています。0
と 11
の間であり、値 0
は 1 月を表します。Calendar
@Deprecated public void setMonth(int month)
Calendar.set(Calendar.MONTH, int month)
に置き換えられています。month
- 0 - 11 の月の値。Calendar
@Deprecated public int getDate()
Calendar.get(Calendar.DAY_OF_MONTH)
に置き換えられています。1
と 31
の間になります。Calendar
@Deprecated public void setDate(int date)
Calendar.set(Calendar.DAY_OF_MONTH, int date)
に置き換えられています。date
- 1 - 31 の月の日の値。Calendar
@Deprecated public int getDay()
Calendar.get(Calendar.DAY_OF_WEEK)
に置き換えられています。Calendar
@Deprecated public int getHours()
Calendar.get(Calendar.HOUR_OF_DAY)
に置き換えられています。Calendar
@Deprecated public void setHours(int hours)
Calendar.set(Calendar.HOUR_OF_DAY, int hours)
に置き換えられています。hours
- 時間の値。Calendar
@Deprecated public int getMinutes()
Calendar.get(Calendar.MINUTE)
に置き換えられています。0
- 59
です。Calendar
@Deprecated public void setMinutes(int minutes)
Calendar.set(Calendar.MINUTE, int minutes)
に置き換えられています。minutes
- 分の値。Calendar
@Deprecated public int getSeconds()
Calendar.get(Calendar.SECOND)
に置き換えられています。0
- 61
です。値 60
および 61
は、うるう年を考慮する Java 仮想マシンだけで発生します。Calendar
@Deprecated public void setSeconds(int seconds)
Calendar.set(Calendar.SECOND, int seconds)
に置き換えられています。seconds
- 秒の値。Calendar
public long getTime()
public void setTime(long time)
Date
オブジェクトを、1970 年 1 月 1 日 00:00:00 GMT から time
ミリ秒の時点を表すように設定します。time
- ミリ秒数。public boolean before(Date when)
when
- 日付。true
、そうでない場合は false
。NullPointerException
- when
が null の場合。public boolean after(Date when)
when
- 日付。true
、そうでない場合は false
。NullPointerException
- when
が null の場合。public boolean equals(Object obj)
null
ではなく、かつ、このオブジェクトとミリ秒まで同じ時点を表す Date
オブジェクトであれば、true
を返します。
したがって、2 つの Date
オブジェクトは、getTime
メソッドが両方に対して同じ long
を返す場合だけ等しいものとみなされます。
public int compareTo(Date anotherDate)
compareTo
、インタフェース: Comparable<Date>
anotherDate
- 比較対象の Date
。0
。この Date が引数 Date より前の場合は 0
より小さい値。この Date が引数 Date より後の場合は 0
より大きい値。NullPointerException
- anotherDate
が null の場合。public int hashCode()
getTime()
メソッドによって返されるプリミティブ long 値の上位半分と下位半分の排他的論理和です。すなわち、ハッシュコードは次の式の値です。
(int)(this.getTime()^(this.getTime() >>> 32))
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String toString()
Date
オブジェクトを次の形式の String
に変換します。
以下にそれぞれの意味を示します。dow mon dd hh:mm:ss zzz yyyy
toString
、クラス: Object
toLocaleString()
, toGMTString()
@Deprecated public String toLocaleString()
DateFormat.format(Date date)
に置き換えられています。strftime()
機能によってサポートされる「%c
」フォーマットの場合と同様です。DateFormat
, toString()
, toGMTString()
@Deprecated public String toGMTString()
TimeZone
を使用する DateFormat.format(Date date)
に置き換えられています。d mon yyyy hh:mm:ss GMT以下にそれぞれの意味を示します。
結果はローカルタイムゾーンに依存しません。
DateFormat
, toString()
, toLocaleString()
@Deprecated public int getTimezoneOffset()
-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)
に置き換えられています。Date
オブジェクトで表される時間に適切な、UTC を基準にしたローカルタイムゾーンのオフセットを分で返します。
次に、グリニッジの西 5 時間ゾーンの Massachusetts の例を示します。
1996 年 2 月 14 日のため、標準時 (東部標準時) が使用されています。オフセットは、UTC から 5 時間です。new Date(96, 1, 14).getTimezoneOffset() returns 300
1996 年 6 月 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.ZONE_OFFSET
, Calendar.DST_OFFSET
, TimeZone.getDefault()
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.