Date
java.util.Date
Date的每一个实例用于表示一个确切的时间点。
内部维护了一个long值,该值记录的是从:1970年1月1日00:00:00到表示该时间点之间所经历的毫秒值。
正数是70年以后的日期,负数是70年以前的日期。
由于Date设计上存在缺陷(时区、千年虫),所以它的大部分方法被设置为"过时的",不再建议使用。
eg:
/*
* 使用默认构造方法创建的Date表示当前系统时间。
*/
Date now = new Date();
/*
* Date重写了toString,返回的字符串显示的就是当前Date表示的时间。
* 格式:Wed May 15 17:04:08 CST 2019
* 对于非英语地区不够友好。
*/
System.out.println(now);
/*
* Date的大部分方法不建议使用了。
*/
now.getYear();
/*
* 获取Date内部维护的long值
*/
Long time = now.getTime();
System.out.println(time);
//明天这一时刻的毫秒值
time += 1000*60*60*24;
/*
* void setTime(long)
* 设置一个long值,即Date表示该long值所表示的时间。
*/
now.setTime(time);
System.out.println(now);
SimpleDateFormat
java.text.SimpleDateFormat
根据一个给定的日期格式将String和Date相互转换。
eg:
//当前系统时间
Date now = new Date();
System.out.println(now);
/*
* 2019-05-15 17:25:55
* yyyy-MM-dd HH:mm:ss
*/
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/*
* Date->String
* String format(Date date)
* format方法可以将给定的date对象所表示的时间按照SimpleDateFormat指定的日期格式转换为字符串。
*/
String str = sdf.format(now);
System.out.println(str);
从字符串转换为Date
Date parse(String str)
将给定的字符串按照SimpleDateFormat指定的日期格式解析为一个Date对象
eg:
String str = "2008-08-08 20:08:08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//String ->Date
Date date = sdf.parse(str);
System.out.println(date);