Date,时间和日期类,这里讲util包中的而不是sql包中的
Date:表示特定的时间瞬间,精确到毫秒(1000毫秒=1秒)
时间和日期的操作都基于毫秒值
时间原点:1970年1月1日,0时0分0秒,对应毫秒值为0
得到当前时间的毫秒值:
public class DateDemo { public static void main(String[] args) { long l = System.currentTimeMillis(); //获取当前日期的毫秒值 System.out.println(l); //1515639742854 } }
Date类的构造方法:
package demo; import java.util.Date; public class DateDemo { public static void main(String[] args) { function1(); function2(); } public static void function1(){ Date date = new Date(); System.out.println(date); //输出:Thu Jan 11 11:09:41 CST 2018 } public static void function2(){ Date date = new Date(123456); System.out.println(date); //输出:Thu Jan 01 08:02:03 CST 1970 } }
Date类的方法:
package demo; import java.util.Date; public class DateDemo { public static void main(String[] args) { function1(); function2(); } public static void function1(){ //日期转毫秒 Date date = new Date(); long time = date.getTime(); System.out.println(time); //1515642454307 } public static void function2(){ //毫秒转日期 Date date = new Date(); System.out.println(date); //Thu Jan 11 11:47:34 CST 2018 date.setTime(123123); System.out.println(date); //Thu Jan 01 08:02:03 CST 1970 } }
我们发现Date类得到的日期格式不是我们所习惯的,
所以这里有一个DateFormat类提供格式化日期功能:
DateFormat是一个抽象类,主要使用它的子类SimpleDateFormat类
示例:
package demo; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; //对日期格式化 public class SimpleDateFormatDemo { public static void main(String[] args) { function(); } public static void function(){ DateFormat date = new SimpleDateFormat("yyyy年MM月dd日HH点mm分钟ss秒"); String date1 = date.format(new Date()); System.out.println(date1); //输出:2018年01月11日12点01分钟30秒 } }
还可以将字符串转换成日期:
示例:
package demo; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; //对日期格式化 public class SimpleDateFormatDemo { public static void main(String[] args) throws ParseException { function(); } public static void function() throws ParseException { // 这里有异常,后面介绍 DateFormat date1 = new SimpleDateFormat("yyyy-MM-dd"); // 必须是标准格式的字符串 Date date2 = date1.parse("2017-11-25"); System.out.println(date2); // 输出:Sat Nov 25 00:00:00 CST 2017 } }
在实际开发中,不会让用户自行输入日期,因为存在格式错误的风险
通常做一个日期控件供用户选择,而不是让用户输入