Java常用API之日期类
标签: Java
Date类
全名:java.util.Date,本质是一个从1970年1月1日0时整开始到某个时间点的毫秒数,数据类型为long(长整型)。
导包快捷键:Alt+?
Date类提供两个实例化Date对象的方法:
a. 使用当前日期和时间来初始化对象
Date dd = new Date();//实例化日期类并表示当前时间
System.out.println(dd);//日期类型变量可以直接输出,输出的是固定的格式:Mon Aug 05 20:38:37 CST 2019
System.out.println(dd.getTime());//返回毫秒数(long数据类型)
b. 使用有参构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数
Date d1 = new Date(1589765846858L);//参数为长整型的毫秒数
c. 比较两个日期可以直接使用毫秒数作为比较对象,大的值时间是越往后的
例如:
if(dd1.getTime()>dd2.getTime()){
System.out.println("第一个日期在第二个日期之后");
}else{
System.out.println("第一个日期在第二个日期之前");
}
SimpleDateFormat专门处理日期格式的类
例如:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss.SSS");
Date now = new Date();//创建日期对象并表示当前时间
String dataStr = sdf.format(now);//将日期转为指定格式的字符串
System.out.println(dataStr);//2019年08月05日 星期一 20:52:18.288
Thread.sleep(Millis)
使当前线程休眠,接收参数为毫秒数。1000毫秒 = 1秒
try {
System.out.println(new Date() + "\n");//打印当前日期时间
Thread.sleep(1000*5);// 休眠5秒
System.out.println(new Date() + "\n");//休眠5秒后当前日期时间
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Calendar类
java.util.Calendar比Date类强大,使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。
Calendar c1 = Calendar.getInstance();//默认当前日期
System.out.println(c1.get(Calendar.YEAR)+"-"+c1.get(Calendar.MONTH)+"-"+c1.get(Calendar.DATE));
c1.set(2019, 10, 15, 14, 31, 50);//通过set方法指定日期和时间(年,月,日,24小时制的小时,分钟,秒)
System.out.println(c1.get(Calendar.YEAR)+"-"+c1.get(Calendar.MONTH)+"-"+c1.get(Calendar.DATE)+" "
+c1.get(Calendar.HOUR_OF_DAY)+":"+c1.get(Calendar.MINUTE)+":"+c1.get(Calendar.SECOND));//再通过get方法获取对象字段的值
也可以设定某个字段的值:
c1.set(Calendar.DATE,20);//日期设为20号
c1.set(Calendar.YEAR,2020);//年份设为2020年
对日期进行加减:
c1.add(Calendar.DATE,10);//日期上加10天,表10天后的日期
c1.add(Calendar.DATE, -5);//日期上减去5天,表示5天前的日期