一、Date类简介
Java Date类是表示特定时间点的类,它将日期和时间以毫秒为单位存储在long变量中,是Java常用的日期处理类之一。
在Java中,Date类有很多方法可以用来处理日期和时间,例如获取特定格式的时间字符串、对日期进行加减、比较日期的大小等等。
在使用Java Date类时需要注意,由于Java Date类在处理时是基于系统默认时区的,所以在跨时区的处理时需要进行时区转换。
二、创建Date对象
可以用构造函数创建Date对象,如果不指定时间,则会自动设置为当前时间。
//不指定时间,自动设置为当前时间 Date now = new Date(); //指定时间,参数为时间戳 Date time = new Date(1606780800000L);
三、格式化Date对象
可以将Date对象格式化为特定格式的时间字符串,主要通过SimpleDateFormat类实现。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String strDate = sdf.format(new Date()); System.out.println(strDate); // 2020-12-01 12:00:00
四、对日期进行加减
可以使用Calendar类将日期进行加减。
//获取Calendar对象 Calendar calendar = Calendar.getInstance(); //将日历设置为当前时间 calendar.setTime(new Date()); //在当前日期上加减 calendar.add(Calendar.HOUR, 2); Date newDate = calendar.getTime();
五、日期比较
可以通过Date的compareTo方法比较两个日期的大小。
Date date1 = new Date(); Date date2 = new Date(System.currentTimeMillis() + 10000); int diff = date1.compareTo(date2); // diff < 0, date1在date2之前 // diff > 0, date1在date2之后 // diff = 0,两个日期相同
六、时间戳与Date转换
时间戳是指自1970年1月1日00:00:00以来的毫秒数,可以将时间戳转换为Date格式。
long timeStamp = 1606780800000L; Date date = new Date(timeStamp);
也可以将Date格式转换为时间戳。
Date date = new Date(); long timeStamp = date.getTime();
七、附脚本示例代码
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateDemo { public static void main(String[] args) { //不指定时间,自动设置为当前时间 Date now = new Date(); //指定时间,参数为时间戳 Date time = new Date(1606780800000L); //将日期格式化为特定格式的时间字符串 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String strDate = sdf.format(new Date()); System.out.println(strDate); // 2020-12-01 12:00:00 //对日期进行加减 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); //设置为当前时间 calendar.add(Calendar.HOUR, 2); Date newDate = calendar.getTime(); //比较日期大小 Date date1 = new Date(); Date date2 = new Date(System.currentTimeMillis() + 10000); int diff = date1.compareTo(date2); // diff < 0, date1在date2之前 // diff > 0, date1在date2之后 // diff = 0,两个日期相同 //时间戳与Date转换 long timeStamp = 1606780800000L; Date date = new Date(timeStamp); Date date = new Date(); long timeStamp = date.getTime(); } }