Java 获取系统时间的三种方式,总结起来
业务场景中,不乏会需要取到当前系统的时间,做一些判断,比如判断某个执行过程需要花多长时间,然后将时间记录下来,返回给业务查看;或者需要或者一个唯一的值做一些表单单号,那么当前系统时间就是唯一的,可以适用,等等。那下面总结下有哪几种方式来获取。
文章共616字 · 阅读需要大约3分钟
一键AI生成摘要,助你高效阅读
问答
·
业务场景中,不乏会需要取到当前系统的时间,做一些判断,比如判断某个执行过程需要花多长时间,然后将时间记录下来,返回给业务查看;或者需要或者一个唯一的值做一些表单单号,那么当前系统时间就是唯一的,可以适用,等等。那下面总结下有哪几种方式来获取。
一、System类中currentTimeMillis()方法
方法功能:返回从1970年1月1日午夜(UTC)开始到当前时间的毫秒值. 返回类型为 long ,表示毫秒为单位的当前时间。
特别注意:如果是想获取时间戳,推荐用System.currentTimeMillis(),获取时间戳效率最高,Date类也可以获取时间戳,效率较低。
@Test
public void test(){
long l = System.currentTimeMillis(); //获取时间戳效率最高
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = dateFormat.format(l);
System.out.println(l); //1663989713565
System.out.println(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 = dateFormat.format(date);
System.out.println(format); //2022-09-24 11:28:22
System.out.println(date); //Sat Sep 24 11:28:22 CST 2022
String year = String.format("%tY", date);
String month = String.format("%tm", date);
String day = String.format("%te", date);
System.out.println("今天是:"+year+"-"+month+"-"+day); //今天是:2022-09-24
}
三、通过Calendar类来获取当前时间
@Test
public void test(){
Calendar instance = Calendar.getInstance();
System.out.println(instance.getTimeInMillis()); //1663990917312
System.out.println(instance.getTime()); //Sat Sep 24 11:41:57 CST 2022
System.out.println(instance.get(Calendar.YEAR)); // 2022
System.out.println(instance.get(Calendar.MONTH)+1); // 9
System.out.println(instance.get(Calendar.DATE)); // 24
System.out.println(instance.get(Calendar.HOUR_OF_DAY)); //11
System.out.println(instance.get(Calendar.MINUTE)); //41
System.out.println(instance.get(Calendar.SECOND)); //57
}
四、LocalDate
LocalDate curCycleStartDate = LocalDate.now().with(DayOfWeek.MONDAY);
LocalDate curCycleEndDate = curCycleStartDate.plusDays(6);
LocalDate preCycleStartDate = curCycleStartDate.minusDays(7);
LocalDate preCycleEndDate = curCycleStartDate.minusDays(1);
System.out.println(LocalDate.now()); //系统当前天
System.out.println(curCycleStartDate); //本周一
System.out.println(curCycleEndDate); //本周一 + 1天 本周日
System.out.println(preCycleStartDate); //本周一 - 7天 上周一
System.out.println(preCycleEndDate); //本周一 - 1天 上周日
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
System.out.println(dateTimeFormatter.format(LocalDateTime.now())); //系统当前天 带时分秒
System.out.println(LocalDateTime.now().format(DateTimeFormatter.ofPattern("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
更多推荐
已为社区贡献2条内容
所有评论(0)