首页 > 其他 > 详细

面向对象-类库-时间(Date、Calendar)

时间:2021-03-06 23:24:10      阅读:21      评论:0      收藏:0      [点我收藏+]

Date类表示特定的时刻,精度为毫秒。

在JDK 1.1之前, Date类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,而DateFormat类应该用于格式化和解析日期字符串。 不推荐使用Date中的相应方法。

Date类

构造方法:过时方法不列举

构造器描述
Date()
分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。
Date?(long date)
分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。  

方法:

和类型方法描述
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以来的毫秒数。
int hashCode()
返回此对象的哈希码值。
void setTime?(long time)
将此 Date对象设置为表示格林尼治标准时间1970年1月1日00:00:00之后的 time毫秒的时间点。
Instant toInstant()
将此 Date对象转换为 Instant
String toString()
将此 Date对象转换为以下形式的 String

 

格式化和解析日期字符串

SimpleDateFormat:

  • SimpleDateFormat是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。

常用构造方法:

SimpleDateFormat?(String pattern)
构造一个 SimpleDateFormat使用给定的模式和默认的默认日期格式符号 FORMAT区域设置。 

日期指定字符:

yyyy 年   MM 月   dd日   h 12小时制   H 24小时制0-23   ss秒   SSS毫秒

例:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

 

方法:常用

变量和类型方法描述
StringBuffer format?(Date date, StringBuffer toAppendTo, FieldPosition pos)
将给定的 Date为日期/时间字符串,并将结果附加到给定的 StringBuffer
Date parse?(String text, ParsePosition pos)
解析字符串中的文本以生成 Date

 

Calender

Calendar提供了一个类方法getInstance ,用于获取此类型的通用对象。 CalendargetInstance方法返回一个Calendar对象,其日历字段已使用当前日期和时间初始化:

 Calendar calendar= Calendar.getInstance();

方法:

变量和类型方法描述
abstract void add?(int field, int amount)
根据日历的规则,将指定的时间量添加或减去给定的日历字段。
boolean after?(Object when)
返回此 Calendar是否表示指定的 Object表示的时间之后的时间。
boolean before?(Object when)
返回此 Calendar是否表示指定的 Object代表的时间之前的时间。
void clear()
设置此 Calendar未定义的所有日历字段值和时间值(距离 Epoch的毫秒偏移量)。
void clear?(int field)
设置此 Calendar未定义的给定日历字段值和时间值(距离 Epoch的毫秒偏移量)。
Object clone()
创建并返回此对象的副本。
int compareTo?(Calendar anotherCalendar)
比较两个 Calendar对象表示的时间值(从 Epoch开始的毫秒偏移)。
boolean equals?(Object obj)
将此 Calendar与指定的 Object
static Calendar getInstance()
使用默认时区和区域设置获取日历。
Date getTime()
返回一个 Date对象,表示此 Calendar的时间值(距离 Epoch的毫秒偏移量)。
int get?(int field)
返回给定日历字段的值。 
void set?(int year, int month, int date)
设置日历字段的值 YEARMONTHDAY_OF_MONTH
void set?(int year, int month, int date, int hourOfDay, int minute)
设置日历字段的值 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTE
void set?(int year, int month, int date, int hourOfDay, int minute, int second)
设置字段中的值 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTESECOND
void setTime?(Date date)
使用给定的 Date设置此日历的时间。
String toString()
返回此日历的字符串表示形式。 

例:

Calendar calendar = new Calendar();

//使用Date类设置calendar时间
calendar.setTime(new Date());

//设置时间  月份为0-11
calendar.set(Calendar.YEAR, 2021);
calendar.set(Calendar.MONTH, 1);
calendar.set(Calendar.DAY_OF_MONTH, 7);

//返回一个Date对象
System.out.println(calendar.getTime().toString());

//使用日历取得时间偏移
calendar.add(Calendar.YEAR, 10);
System.out.println(calendar.getTime().toString());

 

面向对象-类库-时间(Date、Calendar)

原文:https://www.cnblogs.com/yi-ji/p/14483310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!