モジュール java.base
パッケージ java.util

クラスDate

java.lang.Object
java.util.Date
すべての実装されたインタフェース:
Serializable, Cloneable, Comparable<Date>
直系の既知のサブクラス:
Date, Time, Timestamp

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に同期していますが、うるう秒の調整はされません 興味深いソースは、米国海軍天文台(USNO)です:

     https://www.usno.navy.mil/USNO
 

"時間のシステム"に関する資料は:

     https://www.usno.navy.mil/USNO/time/master-clock/systems-of-time
 

UT、UT1、およびUTCを含む様々な異なる時間システムの記述を有します。

年、月、日、時間、分、秒の値を受け取るか返すクラスDateのすべてのメソッドにおいて、次の表示が使用されます。

  • yは整数y - 1900によって表されます。
  • 月は0 - 11の整数で表されます。0は1月、1は2月、そして11は12月を意味します。
  • 日(月の何日目)は通常どおり1 - 31の整数で表されます。
  • 時間は0 - 23の整数で表されます。 このため、深夜零時から午前1時までの時間は時刻0であり、正午から午後1時までの時間は時刻12を意味します。
  • 分は通常どおり0 - 59の整数で表されます。
  • 秒は0 - 61の整数で表されます。値60および61は、うるう秒のためにだけ、そして実際にうるう秒を正確に追跡するJavaの実装だけで発生します。 現在使われているうるう秒の算出法では、2回のうるう秒が同じ分に発生することはきわめてまれですが、この仕様はISO Cによる日付および時刻の規約に従います。

すべての場合において、この目的でメソッドに与えられた引数は指定された範囲に入る必要はありません。たとえば、日付を1月32日として指定した場合は、2月1日と解釈されます。

導入されたバージョン:
1.0
関連項目:
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つの日付が等しいかどうかを比較します。
    static Date from​(Instant instant)
    InstantオブジェクトからDateのインスタンスを取得します。
    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)に置き換えられています。
    Instant toInstant()
    このDateオブジェクトをInstantに変換します。
    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()があとに続きます。

    クラス java.lang.Objectで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • 日付

      public Date()
      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()
    • 日付

      @Deprecatedpublic Date​(int year, int month, int date)
      非推奨。
      JDK version 1.1以降は、Calendar.set(year+1900, month, date)またはGregorianCalendar(year+1900, month, date)に置き換えられています。
      Dateオブジェクトを割り当て、初期化します。これによって、このオブジェクトは、ローカル時間の深夜零時を表します。これは、yearmonthdate引数で指定された日の始めです。
      パラメータ:
      year - 年から1900を引いたもの。
      month - 0 - 11の月。
      date - 1 - 31の月の日。
      関連項目:
      Calendar
    • 日付

      @Deprecatedpublic 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オブジェクトを割り当て、それを初期化します。これによって、オブジェクトはyearmonthdatehrs、およびmin引数で指定された分の開始時点のインスタントをローカル・タイムゾーンで表します。
      パラメータ:
      year - 年から1900を引いたもの。
      month - 0 - 11の月。
      date - 1 - 31の月の日。
      hrs - 0 - 23の時。
      min - 0 - 59の分。
      関連項目:
      Calendar
    • 日付

      @Deprecatedpublic 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オブジェクトを割り当て、それを初期化します。これによって、オブジェクトはyearmonthdatehrsmin、およびsec引数で指定された秒の開始時点のインスタントをローカル・タイムゾーンで表します。
      パラメータ:
      year - 年から1900を引いたもの。
      month - 0 - 11の月。
      date - 1 - 31の月の日。
      hrs - 0 - 23の時。
      min - 0 - 59の分。
      sec - 0 - 59の秒。
      関連項目:
      Calendar
    • 日付

      @Deprecatedpublic Date​(String s)
      非推奨。
      JDK Version 1.1以降は、DateFormat.parse(String s)に置き換えられています。
      Dateオブジェクトを割り当て、初期化します。これによって、このオブジェクトは、文字列sに指定された日付と時刻に初期化されます。これは、parse(java.lang.String)メソッドで解釈されるのと同じように解釈されます。
      パラメータ:
      s - 日付の文字列表現。
      関連項目:
      DateFormatparse(java.lang.String)
  • メソッドの詳細

    • clone

      public Object clone()
      このオブジェクトのコピーを返します。
      オーバーライド:
      clone、クラス: Object
      戻り値:
      このインスタンスの複製。
      関連項目:
      Cloneable
    • UTC

      @Deprecatedpublic 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()があとに続きます。
      引数に基づいて日付と時刻を判定します。 それらの引数は、6つの引数を持つDateコンストラクタの場合とまったく同様に、年、月、日、時、分、および秒として解釈されますが、この場合の引数はローカル・タイムゾーンではなくUTCを基準に解釈されます。 返された時間は、元期(1970年1月1日00:00:00 GMT)からのミリ秒で測定された時間間隔として表されます。
      パラメータ:
      year - 年から1900を引いたもの。
      month - 0 - 11の月。
      date - 1 - 31の月の日。
      hrs - 0 - 23の時。
      min - 0 - 59の分。
      sec - 0 - 59の秒。
      戻り値:
      引数で指定された日付と時刻の1970年1月1日00:00:00 GMTからのミリ秒数。
      関連項目:
      Calendar
    • parse

      @Deprecatedpublic static long parse​(String s)
      非推奨。
      JDK Version 1.1以降は、DateFormat.parse(String s)に置き換えられています。
      文字列sを日付と時刻の表現で解釈しようとします。 この試みが成功すると、示された時間は、ミリ秒数で測定された元期(1970年1月1日00:00:00 GMT)からの時間間隔として返され表されます。 この試みが失敗すると、IllegalArgumentExceptionがスローされます。

      多くの構文が可能です。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進数として処理されます。

      • 数値の前に+または-があり、年がすでに認識されている場合、その数値はタイムゾーン・オフセットです。 数値が24より小さい場合、それは時間で測定されるオフセットです。 そうでない場合は、数値は区読文字のない24時間形式で表された分のオフセットです。 先行する-は、西方へのオフセットを意味します。 タイムゾーン・オフセットは、常にUTC (グリニッジ)を基準とします。 したがって、たとえば文字列内の-5は、「グリニッジの西、5時間」を意味し、+0430は「グリニッジの東、4時間30分」を意味します。 文字列ではGMTUT、またはUTCを重複して指定でき、たとえばGMT-5またはutc+0430のように指定できます。
      • 以下の条件の1つがtrueの場合、数値は年とみなされます。
        • 数値は70以上で、そのあとに空白、カンマ、スラッシュ、または終了文字列が続く
        • 数値は70未満で、月と月の日付の両方が認識されている
        認識された年数値が100未満の場合、Dateクラスが初期化された日の80年前から19年後までの100年間の年が略記されたものとして解釈されます。 年数値を調整したのち、1900が引かれます。 たとえば、現在の年が1999の場合、19から99の範囲にある年が1919から1999を表すとみなされ、0から18は2000から2018を表すとみなされます。 これは、SimpleDateFormatで使用される100より少ない年の解釈とは少し異なります。
      • 数値の後にコロンが続く場合、その数値は時間とみなされます。ただし、時間がすでに認識されている場合は、数値は分とみなされます。
      • 数値の後にスラッシュが続く場合、その数値は月とみなされます(この数値は1減らされて、0から11の範囲の数値を生成する)。ただし月がすでに認識されている場合、その数値は日とみなされます。
      • 数値の後に空白、カンマ、ハイフン、または終了文字列が続く場合、そして時間がすでに認識されていて、分がまだ認識されていない場合、その数値は分とみなされます。分がすでに認識されていて、秒がまだ認識されてない場合、数値は秒とみなされます。それ以外の場合、数値は日とみなされます。

      文字の連続は単語とみなされ、以下のように処理されます。

      • AM (大文字と小文字は無視)と一致する単語は無視されます。ただし、時間が認識されていないか、1より小さいかまたは12より大きい場合、解析は失敗します。
      • PM (大文字と小文字は無視)と一致する単語は、時間に12を追加します。ただし、時間が認識されていないか、1より小さいかまたは12より大きい場合、解析は失敗します。
      • SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、またはSATURDAY (大文字と小文字は無視)の前方の一部と一致する単語は無視されます。 たとえば、sat、Friday、TUE、およびThursは無視されます。
      • そうでない場合、JANUARY、FEBRUARY、MARCH、APRIL、MAY、JUNE、JULY、AUGUST、SEPTEMBER、OCTOBER、NOVEMBER、またはDECEMBER (大文字と小文字は無視され、ここでの順序が考慮される)の前方の一部は、月の指定として認識され、数値(0から11)に変換されます。 たとえば、aug、Sept、april、およびNOVは月として認識されます。 MaMARCHとして認識されますが、MAYとしては認識されません。
      • GMT、UT、またはUTC (大文字と小文字は無視)と一致する単語はUTCを基準に処理されます。
      • EST、CST、MST、またはPST (大文字と小文字は無視)と一致する単語は、北米のタイムゾーンを表すものとして認識されます。それぞれ、グリニッジの西、5時間、6時間、7時間、8時間です。 EDT、CDT、MDT、またはPDT (大文字と小文字は無)は、それぞれ夏時間における同じタイムゾーンを表すものとして認識されます。

      文字列sの全体が走査されると、それは2つの方法のどちらかで時間に変換されます。 タイムゾーンまたはタイムゾーン・オフセットが認識されている場合、年、月、日、時、分、および秒はUTCで解釈され、タイムゾーン・オフセットが適用されます。 そうでない場合、年、月、日、時、分、および秒はローカル・タイムゾーンで解釈されます。

      パラメータ:
      s - 日付として解析される文字列。
      戻り値:
      文字列引数で表された1970年1月1日00:00:00 GMTからのミリ秒数。
      関連項目:
      DateFormat
    • getYear

      @Deprecated public int getYear()
      非推奨。
      JDK Version 1.1以降は、Calendar.get(Calendar.YEAR) - 1900に置き換えられています。
      Dateオブジェクトで表されるインスタントを含むかまたはそのインスタントで始まる年から1900を引いた結果の値を、ローカル・タイムゾーンで解釈して返します。
      戻り値:
      1900を引いた、この日付が表す年
      関連項目:
      Calendar
    • setYear

      @Deprecatedpublic void setYear​(int year)
      非推奨。
      JDK Version 1.1以降は、Calendar.set(Calendar.YEAR, year+1900)に置き換えられています。
      Dateオブジェクトの年を、指定された値に1900を足したものに設定します。 このDateオブジェクトは、指定された年のある時点を、以前と同じように月、日、時、分、および秒を使用してローカル・タイムゾーンで表すように変更されます。 たとえば日付が2月29日だった場合、年はうるう年ではないと設定され、新しい日付は3月1日として処理されます。
      パラメータ:
      year - 年の値。
      関連項目:
      Calendar
    • getMonth

      @Deprecated public int getMonth()
      非推奨。
      JDK Version 1.1以降は、Calendar.get(Calendar.MONTH)に置き換えられています。
      Dateオブジェクトで表されるインスタントを含むかまたはそのインスタントで始まる月を表す数値を返します。 返される値は011の間であり、値0は1月を表します。
      戻り値:
      この日付が表す月
      関連項目:
      Calendar
    • setMonth

      @Deprecatedpublic void setMonth​(int month)
      非推奨。
      JDK Version 1.1以降は、Calendar.set(Calendar.MONTH, int month)に置き換えられています。
      この日付の月を、指定された値に設定します。 Dateオブジェクトは、指定された月のある時点を、ローカル・タイムゾーンを使用して、以前と同じように年、日、時、分、および秒で表すように変更されます。 たとえば日付が10月31日の場合、そして月が6月に設定されている場合、新しい日付は7月1日として処理されます。6月は30日しかないからです。
      パラメータ:
      month - 0 - 11の月の値。
      関連項目:
      Calendar
    • getDate

      @Deprecated public int getDate()
      非推奨。
      JDK Version 1.1以降は、Calendar.get(Calendar.DAY_OF_MONTH)に置き換えられています。
      Dateオブジェクトで表される月の日を返します。 戻り値は、Dateオブジェクトで表されたインスタントを含むかまたはそのインスタントで始まる月の日(ローカル・タイムゾーン)を表す131の間になります。
      戻り値:
      この日付で表される月の日
      関連項目:
      Calendar
    • setDate

      @Deprecatedpublic void setDate​(int date)
      非推奨。
      JDK Version 1.1以降は、Calendar.set(Calendar.DAY_OF_MONTH, int date)に置き換えられています。
      Dateオブジェクトの月の日を、指定された値に設定します。 Dateオブジェクトは、指定された月の日のある時点を、ローカル・タイムゾーンを使用して、以前と同じように年、月、時、分、および秒で表すように変更されます。 たとえば日付が4月30日の場合に、日付が31に設定されると、4月は30日しかないので、それは5月1日として処理されます。
      パラメータ:
      date - 1 - 31の月の日の値。
      関連項目:
      Calendar
    • getDay

      @Deprecated public int getDay()
      非推奨。
      JDK Version 1.1以降は、Calendar.get(Calendar.DAY_OF_WEEK)に置き換えられています。
      この日付で表される週の日を返します。 戻り値(0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday)は、Dateオブジェクトで表されるインスタントを含むかまたはそのインスタントで始まる週の日を、ローカル・タイムゾーンで表します。
      戻り値:
      この日付で表される曜日
      関連項目:
      Calendar
    • getHours

      @Deprecated public int getHours()
      非推奨。
      JDK Version 1.1以降は、Calendar.get(Calendar.HOUR_OF_DAY)に置き換えられています。
      Dateオブジェクトが表す時を返します。 戻り値は、Dateオブジェクトで表されるインスタントを含むかそのインスタントで始まる時をローカル・タイムゾーンで表す数値(0から23)です。
      戻り値:
      この日付が表す時
      関連項目:
      Calendar
    • setHours

      @Deprecatedpublic void setHours​(int hours)
      非推奨。
      JDK Version 1.1以降は、Calendar.set(Calendar.HOUR_OF_DAY, int hours)に置き換えられています。
      Dateオブジェクトの時を、指定された値に設定します。 Dateオブジェクトは、指定された日の時の時点を、ローカル・タイムゾーンを使用して、以前と同じように年、月、日、分、および秒で表すように変更されます。
      パラメータ:
      hours - 時間の値。
      関連項目:
      Calendar
    • getMinutes

      @Deprecated public int getMinutes()
      非推奨。
      JDK Version 1.1以降は、Calendar.get(Calendar.MINUTE)に置き換えられています。
      この日付で表される時を過ぎた分数を、ローカル・タイムゾーンで返します。 返される値は、0 - 59です。
      戻り値:
      この日付で表される時を過ぎた分数
      関連項目:
      Calendar
    • setMinutes

      @Deprecatedpublic void setMinutes​(int minutes)
      非推奨。
      JDK Version 1.1以降は、Calendar.set(Calendar.MINUTE, int minutes)に置き換えられています。
      Dateオブジェクトの分を指定された値に設定します。 Dateオブジェクトは、指定された時の分のある時点を、ローカル・タイムゾーンを使用して、以前と同じように年、月、日、時、秒で表すように変更されます。
      パラメータ:
      minutes - 分の値。
      関連項目:
      Calendar
    • getSeconds

      @Deprecated public int getSeconds()
      非推奨。
      JDK Version 1.1以降は、Calendar.get(Calendar.SECOND)に置き換えられています。
      この日付で表される、分を過ぎた秒数を返します。 返される値は、0 - 61です。 60および61は、うるう年を考慮するJava仮想マシンだけで発生します。
      戻り値:
      この日付で表される、分を過ぎた秒数
      関連項目:
      Calendar
    • setSeconds

      @Deprecatedpublic void setSeconds​(int seconds)
      非推奨。
      JDK Version 1.1以降は、Calendar.set(Calendar.SECOND, int seconds)に置き換えられています。
      このDateの秒を指定された値に設定します。 Dateオブジェクトは、指定された分の秒のある時点を、ローカル・タイムゾーンを使用して、以前と同じように年、月、日、時、および分で表すように変更されます。
      パラメータ:
      seconds - 秒の値。
      関連項目:
      Calendar
    • getTime

      public long getTime()
      Dateオブジェクトで表される、1970年1月1日00:00:00 GMTからのミリ秒数を返します。
      戻り値:
      この日付で表される、1970年1月1日00:00:00 GMTからのミリ秒数。
    • setTime

      public void setTime​(long time)
      このDateオブジェクトを、1970年1月1日00:00:00 GMTからtimeミリ秒の時点を表すように設定します。
      パラメータ:
      time - ミリ秒数。
    • before

      public boolean before​(Date when)
      この日付が、指定された日付より前にあるかどうかを判定します。
      パラメータ:
      when - 日付。
      戻り値:
      Dateオブジェクトが表すインスタントがwhenオブジェクトの表すインスタントより早い場合だけtrue、そうでない場合はfalse
      例外:
      NullPointerException - whenがnullの場合。
    • after

      public boolean after​(Date when)
      この日付が、指定された日付より後にあるかどうかを判定します。
      パラメータ:
      when - 日付。
      戻り値:
      Dateオブジェクトが表すインスタントがwhenオブジェクトの表すインスタントより遅い場合だけtrue、そうでない場合はfalse
      例外:
      NullPointerException - whenがnullの場合。
    • equals

      public boolean equals​(Object obj)
      2つの日付が等しいかどうかを比較します。 引数がnullではなく、かつ、このオブジェクトとミリ秒まで同じ時点を表すDateオブジェクトであれば、trueを返します。

      したがって、2つのDateオブジェクトは、getTimeメソッドが両方に対して同じlongを返す場合だけ等しいものとみなされます。

      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - 比較対象のオブジェクト。
      戻り値:
      オブジェクトが同じである場合はtrue、そうでない場合はfalse
      関連項目:
      getTime()
    • compareTo

      public int compareTo​(Date anotherDate)
      順序付けのために2つのDateを比較します。
      定義:
      compareTo、インタフェース: Comparable<Date>
      パラメータ:
      anotherDate - 比較対象のDate
      戻り値:
      引数DateがこのDateと等しい場合は値0。このDateが引数Dateより前の場合は0より小さい値。このDateが引数Dateより後の場合は0より大きい値。
      例外:
      NullPointerException - anotherDateがnullの場合。
      導入されたバージョン:
      1.2
    • hashCode

      public int hashCode()
      このオブジェクトに対するハッシュ・コード値を返します。 結果は、getTime()メソッドによって返されるプリミティブlong値の上位半分と下位半分の排他的論理和です。 すなわち、ハッシュ・コードは次の式の値です。
      
       (int)(this.getTime()^(this.getTime() >>> 32))
       
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • toString

      public String toString()
      Dateオブジェクトを次の形式のStringに変換します。
       dow mon dd hh:mm:ss zzz yyyy
      以下にそれぞれの意味を示します。
      • dowは曜日(Sun, Mon, Tue, Wed, Thu, Fri, Sat)です。
      • monは月(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)です。
      • ddは2桁の10進数である月の日(01 - 31)です。
      • hhは2桁の10進数である日の時(00 - 23)です。
      • mmは2桁の10進数である時の分(00 - 59)です。
      • ssは2桁の10進数である分の秒(00 - 61)です。
      • zzzはタイムゾーン(夏時間を反映する場合があります)。 標準タイムゾーンの省略名には、parseメソッドで認識されるものも含まれます。 タイムゾーンの情報が使用できない場合、zzzは空です - つまり、文字を一切含みません。
      • yyyyは4桁の10進数である年です。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      この日付の文字列表現。
      関連項目:
      toLocaleString(), toGMTString()
    • toLocaleString

      @Deprecated public String toLocaleString()
      非推奨。
      JDK Version 1.1以降は、DateFormat.format(Date date)に置き換えられています。
      Dateオブジェクトの文字列表現を実装依存の形式で作成します。 これは、Javaアプリケーションがどこで稼働するにしても、そのユーザーにとってこの形式がなじみのあるものだからです。 この目的は、ISO Cのstrftime()機能によってサポートされる「%c」フォーマットの場合と同様です。
      戻り値:
      ロケール規則を使ったこの日付の文字列表現。
      関連項目:
      DateFormat, toString(), toGMTString()
    • toGMTString

      @Deprecated public String toGMTString()
      非推奨。
      JDK version 1.1以降は、GMT TimeZoneを使用するDateFormat.format(Date date)に置き換えられています。
      このDateオブジェクトの文字列表現を次の形式で作成します。
       d mon yyyy hh:mm:ss GMT
      以下にそれぞれの意味を示します。
      • dは1桁または2桁の10進数である月の日(1 - 31)。
      • monは月(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)です。
      • yyyyは4桁の10進数である年。
      • hhは2桁の10進数である日の時(00 - 23)です。
      • mmは2桁の10進数である時の分(00 - 59)です。
      • ssは2桁の10進数である分の秒(00 - 61)。
      • GMTはグリニッジ標準時を示すASCII文字「GMT」。

      結果はローカル・タイムゾーンに依存しません。

      戻り値:
      インターネットのGMT規則を使った、この日付の文字列表現。
      関連項目:
      DateFormat, toString(), toLocaleString()
    • getTimezoneOffset

      @Deprecated public int getTimezoneOffset()
      非推奨。
      JDK Version 1.1以降は、-(Calendar.get(Calendar.ZONE_OFFSET)+Calendar.get(Calendar.DST_OFFSET))/(60 * 1000)に置き換えられています。
      Dateオブジェクトで表される時間に適切な、UTCを基準にしたローカル・タイムゾーンのオフセットを分で返します。

      次に、グリニッジの西5時間ゾーンのMassachusettsの例を示します。

       new Date(96, 1, 14).getTimezoneOffset() returns 300
      1996年2月14日のため、標準時(東部標準時)が使用されています。オフセットは、UTCから5時間です。
       new Date(96, 5, 1).getTimezoneOffset() returns 240
      1996年6月1日のため、夏時間(東部夏時間)が使用されています。オフセットは、UTCから4時間だけです。

      このメソッドは計算したかのように同じ結果を生成します。

       (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()
    • from

      public static Date from​(Instant instant)
      InstantオブジェクトからDateのインスタンスを取得します。

      Instantはナノ秒の精度を使用するのに対し、Dateはミリ秒の精度を使用します。 変換では超過分の精度情報は、ナノ秒単位で100万分の1の整数除算が行われたかのように切り捨てられます。

      Instantには、Dateより遠い未来または過去にある時系列上の時点を格納できます。 このシナリオでは、このメソッドは例外をスローします。

      パラメータ:
      instant - 変換するインスタント
      戻り値:
      指定されたインスタントと同じ時系列上のインスタントを表すDate
      例外:
      NullPointerException - instantがnullの場合。
      IllegalArgumentException - そのインスタントがDateとして表すには大きすぎる場合
      導入されたバージョン:
      1.8
    • toInstant

      public Instant toInstant()
      このDateオブジェクトをInstantに変換します。

      この変換では、時系列上でこのDateと同じ時点を表すInstantを作成します。

      戻り値:
      このDateオブジェクトと同じ時系列上の時点を表すインスタント
      導入されたバージョン:
      1.8