Java 获取系统时间的三种方式,总结起来

时间:2024-10-14 19:52:22

业务场景中,不乏会需要取到当前系统的时间,做一些判断,比如判断某个执行过程需要花多长时间,然后将时间记录下来,返回给业务查看;或者需要或者一个唯一的值做一些表单单号,那么当前系统时间就是唯一的,可以适用,等等。那下面总结下有哪几种方式来获取。

一、System类中currentTimeMillis()方法

方法功能返回从1970年1月1日午夜(UTC)开始到当前时间的毫秒值. 返回类型为 long ,表示毫秒为单位的当前时间。

特别注意:如果是想获取时间戳,推荐用(),获取时间戳效率最高,Date类也可以获取时间戳,效率较低。

  1. @Test
  2. public void test(){
  3. long l = (); //获取时间戳效率最高
  4. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  5. String format = (l);
  6. (l); //1663989713565
  7. (format);//2022-09-24
  8. }

二、通过Date类来获取当前时间

  1. @Test
  2. public void test(){
  3. Date date = new Date();
  4. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  5. String format = (date);
  6. (format); //2022-09-24 11:28:22
  7. (date); //Sat Sep 24 11:28:22 CST 2022
  8. String year = ("%tY", date);
  9. String month = ("%tm", date);
  10. String day = ("%te", date);
  11. ("今天是:"+year+"-"+month+"-"+day); //今天是:2022-09-24
  12. }

三、通过Calendar类来获取当前时间

  1. @Test
  2. public void test(){
  3. Calendar instance = ();
  4. (()); //1663990917312
  5. (()); //Sat Sep 24 11:41:57 CST 2022
  6. (()); // 2022
  7. (()+1); // 9
  8. (()); // 24
  9. ((Calendar.HOUR_OF_DAY)); //11
  10. (()); //41
  11. (()); //57
  12. }

四、LocalDate

  1. LocalDate curCycleStartDate = ().with();
  2. LocalDate curCycleEndDate = (6);
  3. LocalDate preCycleStartDate = (7);
  4. LocalDate preCycleEndDate = (1);
  5. (()); //系统当前天
  6. (curCycleStartDate); //本周一
  7. (curCycleEndDate); //本周一 + 1天 本周日
  8. (preCycleStartDate); //本周一 - 7天 上周一
  9. (preCycleEndDate); //本周一 - 1天 上周日
  10. DateTimeFormatter dateTimeFormatter = ("yyyy-MM-dd hh:mm:ss");
  11. ((())); //系统当前天 带时分秒
  12. (().format(("yyyy-MM-dd hh:mm:ss")));
  1. 2023-06-01
  2. 2023-05-29
  3. 2023-06-04
  4. 2023-05-22
  5. 2023-05-28
  6. 2023-06-01 09:09:53
  7. 2023-06-01 09:09:53