Java中日期时间相关的函数
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。读者可以根据自己的需求选择合适的类来进行日期时间的处理。
