与时间相关的类主要有 Date类、SimpleDateFormat类和Calendar类。其中最常用的就是Date类、SimpleDateFormat类。
Date类:
类 Date
表示特定的瞬间,精确到毫秒。
常用方法:
1、Date()
分配 Date
对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
2、Date(long date)
分配 Date
对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
3、int
compareTo(Date anotherDate)
比较两个日期的顺序。如果参数 Date 等于此 Date,则返回值 0
;如果此 Date 在 Date 参数之前,则返回小于 0
的值;如果此 Date 在 Date 参数之后,则返回大于 0
的值。
4、boolean
equals(Object obj)
比较两个日期的相等性。比较两个日期的相等性。当且仅当参数不为 null
,并且是一个表示与此对象相同的时间点(到毫秒)的 Date
对象时,结果才为 true
。因此,当且仅当 getTime
方法对于两个 Date
对象返回相同的 long
值时,这两个对象才是相等的。
SimpleDateFormat
类:
SimpleDateFormat
是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
常用方法:
1、SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
。
2、format(Date date) 函数
时间转字符串
3、parse(String date)函数
字符串转时间
calender 类:
Calendar
类是一个抽象类,它为特定瞬间与一组诸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
常用方法:
1、static Calendar
getInstance()
使用默认时区和语言环境获得一个日历。
2、 int
get(int field)
返回给定日历字段的值。具体的值可以参照API。
代码示例:
1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Calendar; 4 import java.util.Date; 5 6 public class DateTest { 7 public static void main(String[] args) throws ParseException { 8 Date date= new Date(); 9 //时间转字符串format(Date date) 函数 10 //默认时间格式 11 SimpleDateFormat dateFormat = new SimpleDateFormat(); 12 String normalFormatTime = dateFormat.format(date); 13 System.out.println("默认格式的当前时间:"+normalFormatTime); 14 //自定义时间格式 15 SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 16 String customFormatTime = dateFormat2.format(date); 17 System.out.println("自定义格式的当前时间:"+customFormatTime); 18 19 //字符串转时间parse(Date date)函数 20 String birthday = "2017-12-23 00:07:01"; 21 Date date2 = dateFormat2.parse(birthday); //注意: 指定的字符串格式必须要与SimpleDateFormat的模式要一致。 22 System.out.println(date2); 23 24 //时间比较 25 int result = date.compareTo(date2); 26 System.out.println("比较结果:"+result); 27 System.out.println("两个时间是否相等:"+date.equals(date2)); 28 29 //日历类 30 Calendar calendar = Calendar.getInstance(); //获取当前的系统时间。 31 System.out.println("年:"+ calendar.get(Calendar.YEAR)); 32 System.out.println("月:"+ (calendar.get(Calendar.MONTH)+1)); 33 System.out.println("日:"+ calendar.get(Calendar.DATE)); 34 35 System.out.println("时:"+ calendar.get(Calendar.HOUR_OF_DAY)); 36 System.out.println("分:"+ calendar.get(Calendar.MINUTE)); 37 System.out.println("秒:"+ calendar.get(Calendar.SECOND)); 38 39 } 40 }