Date类表示特定的时刻,精度为毫秒。 Date类是java.util 包下的类,与java.sql不同:util 是Java提供类 sql是数据库。Date类可以用来获取当前时间的毫秒值。
在JDK 1.1之前, Date类还有两个附加功能。
它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始,
Calendar类应该用于在日期和时间字段之间进行转换,而DateFormat类应该用于格式化和解析日期字符串。 所以Date中的很多方法都已过时,不推荐使用Date中的相应方法。以下我们总结Date中没有过时的方法
Date构造方法
Date() | 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。 |
方法摘要
变量和类型 | 方法 | 描述 |
---|---|---|
boolean | after(Date when) | 测试此日期是否在指定日期之后。 |
boolean | before(Date when) | 测试此日期是否在指定日期之前。 |
Object | clone() | 返回此对象的副本。 |
int | compareTo(Date anotherDate) | 比较两个日期的订购。 |
boolean | equals(Object obj) | 比较两个相等的日期。 |
static Date | from(Instant instant) | 从 Instant对象获得 Date的实例。 |
long | getTime() | 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。 |
Date方法
分配一个 Date对象,并初始化它,这样它代表的由指定的第二个开始的瞬间 ,year , month , date , hrs , min ,并 sec参数,在本地时区。
public Date(int year,
int month,
int date,
int hrs,
int min,
int sec)
//year - 减去1900年的年份。
//month - 0-11之间的月份。
//date - 1-31之间的一天中的某一天。
//hrs - 0-23之间的小时数。
//min - 0-59之间的分钟。
//sec - 0-59之间的秒数。
DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化和分析日期或时间,DateFormat可帮助您格式化和解析任何区域设置的日期,把你获取的日期格式变为你想要的格式。属于java.text 包,SimpleDateFormat 是DateFormate 的直接子类,用来设置日期格式
Formate 和 parse 都是从父类的DateFormate 类继承来的 , 因为其父类是抽象类 无法直接调用,parse 是Date类中的方法,因为过时由DateFormat.parse(String s)取代。
方法摘要
变量和类型 | 方法 | 描述 |
---|---|---|
protected | DateFormat() | 创建新的日期格式 |
StringBuffer | format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition) | 将Date格式化为日期时间字符串。 格式化的字符串将附加到给定的StringBuffer 。 |
String | format(Date date) | 将Date格式化为日期时间字符串。 |
boolean | equals(Object obj) | 覆盖等于 |
Calendar | getCalendar() | 获取与此日期/时间格式化程序关联的日历。 |
static DateFormat | getDateInstance() | 获取具有默认 FORMAT语言环境的默认格式样式的日期格式化程序。 |
static DateFormat | getInstance() | 获取一个默认的日期/时间格式化程序,它使用SHORT样式作为日期和时间。 |
TimeZone | getTimeZone() | 获取时区。 |
Date | parse(String source) | 从给定字符串的开头解析文本以生成日期。 |
boolean | isLenient() | 判断日期/时间解析是否宽松。 |
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 )
//可以使用他的子类SimpleDateFormat 来设置日期格式
Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段。该类还提供了用于在包外实现具体日历系统的附加字段和方法。 这些字段和方法定义为protected 。与其他区域设置敏感的类一样, Calendar提供了一个类方法getInstance ,用于获取此类型的通用对象。
Calendar c1 = Calendar.getInstance();
获取和设置日历字段值
通过调用set方法来设置日历字段值。get方法获取时间,Calendar设置的任何字段值在需要计算其时间值,日期或时间格式字符串不是日历定义的一部分,因为用户必须在运行时可修改或覆盖这些字符串。 使用DateFormat格式化日期。
日历字段可以用三种方法来改变set() , add()和roll() ,set(f, value)改变日历字段f至value 。roll(f, delta)增加delta到现场f不更改更大的字段。 这相当于通过以下调整调用add(f, delta)
与set()不同, add()强制立即重新计算日历的毫秒数和所有字段
构造方法
变量 | 构造器 | 描述 |
---|---|---|
protected | Calendar() | 使用默认时区和默认的 FORMAT语言环境构造日历。 |
protected | Calendar(TimeZone zone, Locale aLocale) | 构造具有指定时区和区域设置的日历 |
方法摘要
变量和类型 | 方法 | 描述 |
---|---|---|
abstract void | add(int field, int amount) | 根据日历的规则,将指定的时间量添加或减去给定的日历字段。 |
boolean | after(Object when) | 返回此 Calendar是否表示指定的 Object表示的时间之后的时间。 |
boolean | before(Object when) | 返回此 Calendar是否表示指定的 Object代表的时间之前的时间。 |
int | get(int field) | 返回给定日历字段的值。 |
static Calendar | getInstance() | 使用默认时区和区域设置获取日历。 |
static Calendar | getInstance(TimeZone zone, Locale aLocale) | 获取具有指定时区和区域设置的日历。 |
Date | getTime() | 返回一个 Date对象,表示此 Calendar的时间值 |
TimeZone | getTimeZone() | 获取时区。 |
void | set(int field, int value) | 将给定的日历字段设置为给定值。 |
void | set(int year, int month, int date, int hourOfDay, int minute, int second) | 设置字段中的值 YEAR , MONTH,DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。 |
void | setTime(Date date) | 使用给定的 Date设置此日历的时间。 |
abstract void | roll(int field, boolean up) | 在给定时间字段上添加或减去(向上/向下)单个时间单位而不更改更大的字段。 |
int | getActualMaximum(int field) | 返回指定日历字段可能具有的Calendar |
Instant | toInstant() | 将此对象转换为Instant 。 |
String | toString() | 返回此日历的字符串表示形式。 |
常用字段
WEEK_OF_YEAR | get和set字段编号表示当年的周数 |
WEEK_OF_MONTH | get和set字段编号表示月的周数 |
DATE | get和set字段编号表示当月的日期。 |
DAY_OF_MONTH | get和set字段编号表示当月的日期 |
DAY_OF_YEAR | get和set字段编号表示当年的日期编号 |
DAY_OF_WEEK | get和set字段编号表示星期几。 |
DAY_OF_WEEK_IN_MONTH | get和set字段编号,表示当月的星期几的序号 |
AM_PM | get和set字段编号表示HOUR是在中午之前还是之后 |
HOUR_OF_DAY | get和set字段编号表示当天的小时。 |
HOUR | get和set字段编号表示上午或下午的小时。 |
MINUTE | get和set字段编号表示小时内的分钟 |
SECOND | get和set字段编号表示分钟内的第二个 |
MONTH | get和set字段编号表示月份 |
YEAR | get和set字段编号表示年份。 |
Calender类的这些常用字段的get以及set方法 是替换了过时的Date类的方法