Java中的日期时间函数-JDK文档
Java中的日期时间函数主要从java.util包和java.time包中提供。在JDK 8之前,主要使用SimpleDateFormat类来处理日期时间,而在JDK 8之后,引入了新的日期时间库java.time(也称为JSR-310或ThreeTen)。下面是对这些功能的简要介绍。
## java.util.Date和java.util.Calendar类
java.util.Date类是从JDK的早期版本开始提供的主要日期和时间类。它是一个包含日期和时间信息的可变对象,可以使用它进行日期和时间的计算和操作。然而,该类存在一些问题,比如它不是线程安全的,且设计不符合面向对象的原则。
为了解决这些问题,JDK引入了java.util.Calendar类。它是一个抽象基类,用于表示和操作日期和时间。Calendar类提供了一组方法,用于获取和设置不同的日期和时间字段(如年、月、日、小时、分钟、秒等),以及执行日期和时间的计算和比较。
然而,这两个类在使用上仍然存在一些问题,如格式化和解析日期时间的困难、世界时区的支持不足等。
## java.text.SimpleDateFormat类
为了格式化和解析日期和时间,JDK提供了java.text.SimpleDateFormat类。它是一个基于模式的日期格式化类,可以将日期和时间对象(如java.util.Date)转换为字符串,并将字符串解析为日期和时间对象。
SimpleDateFormat类使用一种模式语法,其中特定的字母和符号代表日期和时间字段的不同部分。例如,yyyy代表4位年份,MM代表2位月份,dd代表2位日期,HH代表24小时制的小时,mm代表分钟等等。
这是一个使用SimpleDateFormat类格式化和解析日期时间的示例:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatExample {
public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化日期时间
Date now = new Date();
String formattedDate = dateFormat.format(now);
System.out.println(formattedDate);
// 解析日期时间
String dateString = "2021-10-01 12:34:56";
try {
Date parsedDate = dateFormat.parse(dateString);
System.out.println(parsedDate);
} catch (Exception e) {
e.printStackTrace();
}
}
}
## java.time包
在JDK 8中,引入了新的日期时间库,即java.time包(也称为JSR-310或ThreeTen)。这个包提供了一套全新的不可变类,用于表示和操作日期、时间、时间间隔和时区。
这是java.time包中一些重要的类:
- LocalDate:表示只包含日期的类。
- LocalTime:表示只包含时间的类。
- LocalDateTime:表示同时包含日期和时间的类。
- ZonedDateTime:表示包含时区信息的日期和时间。
- Duration:表示时间间隔。
- Period:表示日期间隔。
- Instant:表示从协调世界时开始的时间线上的瞬时位置。
这是一个使用java.time包中的LocalDate类的示例:
import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
// 获取当前日期
LocalDate now = LocalDate.now();
System.out.println(now);
// 创建指定日期
LocalDate date = LocalDate.of(2021, 10, 1);
System.out.println(date);
// 计算日期间隔
LocalDate tomorrow = now.plusDays(1);
System.out.println(tomorrow);
// 比较日期
boolean isBefore = date.isBefore(now);
System.out.println(isBefore);
}
}
上述代码演示了如何使用LocalDate类获取当前日期,创建特定日期,计算日期间隔以及比较日期。
以上仅是Java中日期时间函数的简要介绍,还有更多功能和细节可在JDK文档中查找和学习。
