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);
//
}
}
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);
//
}
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
}
}
在实际开发中,不会让用户自行输入日期,因为存在格式错误的风险
通常做一个日期控件供用户选择,而不是让用户输入