业务场景中,不乏会需要取到当前系统的时间,做一些判断,比如判断某个执行过程需要花多长时间,然后将时间记录下来,返回给业务查看;或者需要或者一个唯一的值做一些表单单号,那么当前系统时间就是唯一的,可以适用,等等。那下面总结下有哪几种方式来获取。
一、System类中currentTimeMillis()方法
方法功能:返回从1970年1月1日午夜(UTC)开始到当前时间的毫秒值. 返回类型为 long ,表示毫秒为单位的当前时间。
特别注意:如果是想获取时间戳,推荐用(),获取时间戳效率最高,Date类也可以获取时间戳,效率较低。
-
@Test
-
public void test(){
-
long l = (); //获取时间戳效率最高
-
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
String format = (l);
-
(l); //1663989713565
-
(format);//2022-09-24
-
}
二、通过Date类来获取当前时间
-
@Test
-
public void test(){
-
Date date = new Date();
-
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
String format = (date);
-
(format); //2022-09-24 11:28:22
-
(date); //Sat Sep 24 11:28:22 CST 2022
-
String year = ("%tY", date);
-
String month = ("%tm", date);
-
String day = ("%te", date);
-
("今天是:"+year+"-"+month+"-"+day); //今天是:2022-09-24
-
}
三、通过Calendar类来获取当前时间
-
@Test
-
public void test(){
-
Calendar instance = ();
-
(()); //1663990917312
-
(()); //Sat Sep 24 11:41:57 CST 2022
-
(()); // 2022
-
(()+1); // 9
-
(()); // 24
-
((Calendar.HOUR_OF_DAY)); //11
-
(()); //41
-
(()); //57
-
}
四、LocalDate
-
LocalDate curCycleStartDate = ().with();
-
LocalDate curCycleEndDate = (6);
-
LocalDate preCycleStartDate = (7);
-
LocalDate preCycleEndDate = (1);
-
-
-
(()); //系统当前天
-
(curCycleStartDate); //本周一
-
(curCycleEndDate); //本周一 + 1天 本周日
-
(preCycleStartDate); //本周一 - 7天 上周一
-
(preCycleEndDate); //本周一 - 1天 上周日
-
-
DateTimeFormatter dateTimeFormatter = ("yyyy-MM-dd hh:mm:ss");
-
((())); //系统当前天 带时分秒
-
(().format(("yyyy-MM-dd hh:mm:ss")));
-
2023-06-01
-
2023-05-29
-
2023-06-04
-
2023-05-22
-
2023-05-28
-
2023-06-01 09:09:53
-
2023-06-01 09:09:53