欢迎访问宙启技术站
智能推送

Java中日期时间相关的函数

发布时间:2023-06-09 13:17:54

Java中日期时间相关的函数

Java中提供了丰富的日期时间处理函数,包括日期格式化、日期计算、时区转换等等。本文将集中介绍Java中常用的日期时间相关的函数,以便读者更好地掌握Java中的日期时间处理。

1. SimpleDateFormat

SimpleDateFormat是Java中最常用的日期格式化类,它可以将日期格式化成指定的格式,并且可以将字符串转换为日期对象。

格式化日期:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String dateStr = sdf.format(new Date());

System.out.println(dateStr);

结果为:2021-09-17。

解析字符串:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date = sdf.parse("2021-09-17");

System.out.println(date);

结果为:Fri Sep 17 00:00:00 CST 2021。

2. Calendar

Calendar是Java中操作日期的核心类之一,它可以通过set方法设置日期,通过get方法获取日期,还可以进行日期的加减运算。

获取当前日期:

Calendar cal = Calendar.getInstance();

Date date = cal.getTime();

System.out.println(date);

结果为:Fri Sep 17 15:10:26 CST 2021。

设置日期:

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, 2022);

cal.set(Calendar.MONTH, Calendar.FEBRUARY);

cal.set(Calendar.DAY_OF_MONTH, 10);

Date date = cal.getTime();

System.out.println(date);

结果为:Thu Feb 10 15:12:18 CST 2022。

日期加减:

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DAY_OF_MONTH, 3);

Date date = cal.getTime();

System.out.println(date);

结果为:Mon Sep 20 15:13:09 CST 2021。

3. LocalDate

Java 8引入了新的日期API,其中包括LocalDate类,用于处理日期信息。它可以直接创建日期对象,而不需要通过Calendar获取。

获取当前日期:

LocalDate now = LocalDate.now();

System.out.println(now);

结果为:2021-09-17。

设置日期:

LocalDate date = LocalDate.of(2022, 2, 10);

System.out.println(date);

结果为:2022-02-10。

日期加减:

LocalDate now = LocalDate.now();

LocalDate date = now.plusDays(3);

System.out.println(date);

结果为:2021-09-20。

4. LocalDateTime

LocalDateTime是LocalDate的扩展,可以处理日期和时间信息。它也可以直接创建日期时间对象,而不需要通过Calendar获取。

获取当前日期时间:

LocalDateTime now = LocalDateTime.now();

System.out.println(now);

结果为:2021-09-17T15:19:41.902。

设置日期时间:

LocalDateTime dateTime = LocalDateTime.of(2022, 2, 9, 10, 30);

System.out.println(dateTime);

结果为:2022-02-09T10:30。

日期时间加减:

LocalDateTime now = LocalDateTime.now();

LocalDateTime dateTime = now.plusDays(3).plusHours(2).plusMinutes(30);

System.out.println(dateTime);

结果为:2021-09-20T17:52:06.997。

5. Duration和Period

Java 8中新增了Duration和Period类,用于处理时间和日期的差值,它们的主要区别在于精度不同,Duration可以精确到毫秒级别,而Period只能精确到日级别。

计算时间间隔:

LocalDateTime from = LocalDateTime.parse("2021-09-17T15:30");

LocalDateTime to = LocalDateTime.parse("2021-09-18T12:00");

Duration duration = Duration.between(from, to);

System.out.println(duration.toHours());

结果为:20。

计算日期间隔:

LocalDate from = LocalDate.parse("2021-09-17");

LocalDate to = LocalDate.parse("2021-09-20");

Period period = Period.between(from, to);

System.out.println(period.getDays());

结果为:3。

总结

Java中日期时间相关的函数非常丰富,本文介绍了Java中常用的日期时间处理类,包括SimpleDateFormat、Calendar、LocalDate、LocalDateTime、Duration和Period。读者可以根据自己的需求选择合适的类来进行日期时间的处理。