public class Date extends Object implements Serializable, Cloneable, Comparable<Date>
Date
代表一个特定的瞬间,以毫秒级精度。
JDK 1.1之前,有两类Date
附加功能。它允许日期作为一年,一个月,一天,一小时,一分钟,和第二个价值观。它还允许日期字符串的格式和解析。不幸的是,这些功能的原料药是不适合国际化。作为JDK 1.1的 ,Calendar
类应该用来转换之间的日期和时间字段和DateFormat
类应该用来格式化和解析日期字符串。在Date
相应的方法已被否决。
虽然Date
班旨在反映协调通用时间(UTC),它可能不那么准确,这取决于java虚拟机的主机环境。几乎所有的现代操作系统认为1 天 = 24 × 60 × 60 = 86400秒,在所有的情况下。然而在UTC,每年或每两年一次,有一个额外的第二,叫做“闰秒”。闰秒总是说当一天的最后一秒,总是在12月31日或6月30日。例如,1995年的最后一分钟是61秒长,这要归功于一个附加的飞跃。大多数计算机时钟不够精确,不能反映第二级的区别。
在格林尼治时间定义的一些计算机标准(GMT),这相当于世界时(UT)。GMT是标准的“公民”的名字;UT是同一标准的“科学”的名字。UTC和UT之间的区别是:UTC是基于原子时钟和UT是基于天文观测,这对于所有的实际目的是分裂的一个无形的秀发。因为地球的转动不均匀(它减慢和加快以复杂的方式),UT总是不均匀流动。闰秒是根据需要引入到UTC以UTC保持在0.9秒以后,这是一个版本的UT具有一定的校正。还有其他的时间和日期以及系统;例如,时间尺度上采用基于卫星的全球定位系统(GPS)的同步但不UTC闰秒调整。一个有趣的进一步信息来源是美国海军气象天文台,特别是董事会的时间:
http://tycho.usno.navy.mil
和他们的“时间系统”的定义:
http://tycho.usno.navy.mil/systime.html
在课堂Date
接受或回归年,月,日,小时,分钟和秒值,所有的方法,使用以下的陈述:
- 1900
表示整数。在所有情况下,用于这些目的的方法的参数不必落在指定的范围内;例如,一个日期可以被指定为32一月,并被解释为意义2月1日。
DateFormat
,
Calendar
,
TimeZone
,
Serialized Form
Constructor and Description |
---|
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 对象并将它初始化为代表指定的毫秒数自基准时间被称为“时代”,即1970年1月1日,00:00:00 GMT。
|
Date(String s)
过时的。
作为JDK 1.1版本,取而代之的
DateFormat.parse(String s) 。
|
Modifier and Type | Method and Description |
---|---|
boolean |
after(Date when)
测试如果这个日期是在指定日期之后。
|
boolean |
before(Date when)
测试如果这个日期是在指定日期之前。
|
Object |
clone()
返回此对象的一个副本。
|
int |
compareTo(Date anotherDate)
比较两个订购日期。
|
boolean |
equals(Object obj)
比较两个相等的日期。
|
static Date |
from(Instant instant)
获得
Date 实例从一个
Instant 对象。
|
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()
返回毫秒数自1970年1月1日以来,该
Date对象表示00:00:00 GMT。
|
int |
getTimezoneOffset()
过时的。
作为JDK 1.1版本,取而代之的
-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000) 。
|
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)
集代表一个时间点是1970年1月1日00:00:00 GMT
time 毫秒后这
Date 对象
|
void |
setYear(int year)
过时的。
作为JDK 1.1版本,取而代之的
Calendar.set(Calendar.YEAR, year + 1900) 。
|
String |
toGMTString()
过时的。
作为JDK 1.1版本,取而代之的
DateFormat.format(Date date) ,使用时间TimeZone 。
|
Instant |
toInstant()
将这一
Instant
Date 对象。
|
String |
toLocaleString()
过时的。
作为JDK 1.1版本,取而代之的
DateFormat.format(Date date) 。
|
String |
toString()
将这一
String
Date 对象的形式:
|
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) 或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
- 24小时之间。
min
-分钟之间到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
- 24小时之间。
min
-分钟之间到59。
sec
-秒之间到59。
Calendar
@Deprecated public Date(String s)
DateFormat.parse(String s)
。
s
-日期的字符串表示形式。
DateFormat
,
parse(java.lang.String)
@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
- 24小时之间。
min
-分钟之间到59。
sec
-秒之间到59。
Calendar
@Deprecated public static long parse(String s)
DateFormat.parse(String s)
。
它接受许多语法;特别是,它承认的IETF标准日期:“星期六,1995年8月12日13:30:00 GMT”语法。它也了解大陆美国时区缩写,但一般使用,一个时区偏移量应使用:“星期六,1995年8月12日13:30:00 GMT + 0430”(4小时,30分钟的格林尼治子午线以西)。如果没有指定时区,则假定本地时区为。GMT和UTC是等效的。
字符串s是从左到右的处理,寻找感兴趣的数据。任何材料在s是ASCII的括号内(和)被忽略。可以嵌套圆括号。否则,只允许在s这些字符的ASCII字符:
和空白字符。abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789,+-:/
一个连续的十进制数字序列被视为一个十进制数:
SimpleDateFormat
解释略有不同。连续的一系列字母被视为一个词,并视为如下:
一旦整个字符串S已被扫描,它被转换为两种方式中的一种的时间结果。如果一个时区或时区偏移量得到了认可,年,月,日,小时,分钟,秒UTC时间后应用带偏移的解释。否则,年、月、日、月、小时、分、秒都在当地时间区域内解释。
s
-字符串被解释为一个日期。
DateFormat
@Deprecated public int getYear()
Calendar.get(Calendar.YEAR) - 1900
。
Date
对象表示时间的瞬间一年的结果,如在本地时区的解释。
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
。
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
表示包含或开始在这
Date对象表示时间的即时的日、月在本地时区的解释。
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)
time
毫秒后这
Date
对象
time
-毫秒数。
public boolean before(Date when)
when
-日期。
true
当且仅当这
Date对象表示时间的瞬间是严格比为代表的
when即时;
false
否则。
NullPointerException
-如果
when
是空的。
public boolean after(Date when)
when
-日期。
true
当且仅当这
Date对象表示的瞬间是严格晚于代表
when即时;
false
否则。
NullPointerException
-如果
when
是空的。
public boolean equals(Object obj)
true
如果只有参数不
null
是
Date
表示相同的时间点,到毫秒,这对象。
因此,两Date
对象相等当且仅当getTime
方法返回值都相同的long
。
public int compareTo(Date anotherDate)
compareTo
接口
Comparable<Date>
anotherDate
-
Date
进行比较。
0
日期等于这个日期;值小于
0
如果这个日期之前的日期的争论;和一个值大于
0
如果这个日期的争吵之后。
NullPointerException
-如果
anotherDate
是空的。
public int hashCode()
getTime()
方法返回。那是,哈希代码表达式的值:
(int)(this.getTime()^(this.getTime() >>> 32))
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
String
Date
对象的形式:
地点:dow mon dd hh:mm:ss zzz yyyy
toString
方法重写,继承类
Object
toLocaleString()
,
toGMTString()
@Deprecated public String toLocaleString()
DateFormat.format(Date date)
。
%c
”通过ISO C.
strftime()
功能支持的格式
DateFormat
,
toString()
,
toGMTString()
@Deprecated public String toGMTString()
DateFormat.format(Date date)
,使用时间TimeZone
。
地点: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
对象表示的时间是合适的。
例如,在格林尼治,马萨诸塞州西部的五个时区:
因为1996年2月14日,标准时间(美国东部标准时间)在使用,这是UTC的偏移量五小时;但是:new Date(96, 1, 14).getTimezoneOffset() returns 300
因为1996年6月1日,日光节约时间(东部夏令时间)在使用中,这是只有四个小时从UTC偏移。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()
public static Date from(Instant instant)
Date
实例从一个
Instant
对象。
Instant
使用精度纳秒,而Date
使用精度毫秒。转换将trancate多余的精度信息通过一百万纳秒的数量是受整数除法。
Instant
可以存储点的时间线进一步在未来比过去的Date
。在这种情况下,该方法将抛出一个异常。
instant
-转换的瞬间
Date
代表时间轴上的同一点作为提供即时
NullPointerException
-如果
instant
是空的。
IllegalArgumentException
-如果瞬间太大代表一个
Date
public Instant toInstant()
Instant
Date
对象。
转换创建一个Instant
代表时间轴上的同一点为这Date
。
Date
对象
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.