JAVA对日期的简单用法----Date类和SimpleDateFormat类
知识点有三点
1、获取系统当前时间
2、Date----->String
3、String----->Date
1、Date的构造方法
Date()
分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒
public class DateTest1 {
public static void main(String[] args) {
/*获取系统当前时间*/
Date nowtime1 = new Date();
System.out.println("你好,现在是"+nowtime1);
}
}
这里java.util.Date类已经重写好toString方法了,输出的不再是某个对象的内存地址,而是一个日期的字符串。
输出结果:
Date(long date)
分配一个 Date对象,并将其初始化为表示从标准基准时间(称为“时代”)即1970年1月1日00:00:00 GMT起的指定毫秒数。
参数: date - 1970年1月1日00:00:00 GMT以来的毫秒数。
Date date1 = new Date(1000),//1970年1月1日00:00:00 加1秒
date2 = new Date(-1000),//1970年1月1日00:00:00 减1秒
date3 = new Date(0);//1970年1月1日00:00:00 加/减0秒
System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
输出结果:
这里是因为北京是东八区,因此这里会显示早八个小时。
2、Date类型转换为String类型
SimpleDateFormat(String pattern)
上面的输出格式是国际形式,但对于我们日常生活还是不太习惯,因此我们可以给定我们想要输出的格式。
使用给定模式 SimpleDateFormat并使用默认的 FORMAT语言环境的默认日期格式符号。
里面的 “yyyy” “MM” “dd” “HH” “mm” “ss” “SSS” 不能改变,其他符号可以随便使用
Date nowtime2 = new Date();
/*
* yyyy 年 MM 月 dd HH 时 mm 分 ss 秒 SSS 毫秒
* */
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String s1 = simpleDateFormat.format(nowtime2);
System.out.println(s1);
输出结果:
3、String类型转换为Date类型
String s2 = "2020-08-08 08:08:08 888";
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
try {
Date date4 = simpleDateFormat2.parse(s2);
System.out.println(date4);
} catch (ParseException e) {
e.printStackTrace();
}
输出结果:
注意:在这里的格式需要严格按照SimpleDateFormat里的格式进行,否则会出异常
如:s3中有“年”,即“yyyy”的格式,但SimpleDateFormat中没有,因此会出异常
String s3 = "2020-09-09 09:09:09 999";//此时字符串格式和simpleDateFormat格式不同,会引起异常
//异常为:java.text.ParseException: Unparseable date: "2020-09-09 09:09:09 999"
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("MM-dd HH:mm:ss SSS");//这里没有yyyy(年)
try {
Date date5 = simpleDateFormat2.parse(s3);
System.out.println(date5);
} catch (ParseException e) {
e.printStackTrace();
}
输出结果:
整篇的完整代码如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest01 {
public static void main(String[] args) {
/*获取系统当前时间*/
//无参
Date nowtime1 = new Date();
System.out.println("你好,现在是" + nowtime1);
//有参
Date date1 = new Date(1000),
date2 = new Date(-1000),
date3 = new Date(0);
System.out.println(date1);
System.out.println(date2);
System.out.println(date3);
System.out.println("======================Date类型转换为String类型=============================");
Date nowtime2 = new Date();
/*
* yyyy 年 MM 月 dd HH 时 mm 分 ss 秒 SSS 毫秒
* */
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String s1 = simpleDateFormat.format(nowtime2);
System.out.println(s1);
System.out.println("======================String类型转换为Date类型=============================");
String s2 = "2020-06-06 06:06:06 666";
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
try {
Date date4 = simpleDateFormat1.parse(s2);
System.out.println(date4);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("=====================注意异常的发生====================================");
String s3 = "2020-09-09 09:09:09 999";//此时字符串格式和simpleDateFormat格式不同,会引起异常
//异常为:java.text.ParseException: Unparseable date: "2020-09-09 09:09:09 999"
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("MM-dd HH:mm:ss SSS");//这里没有yyyy(年)
try {
Date date5 = simpleDateFormat2.parse(s3);
System.out.println(date5);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
输出结果: