Java的日期时间函数
在Java中,针对日期和时间的处理提供了java.util和java.time两个包。其中,java.util包已经被java.time所取代,但是在旧的代码中,java.util包仍然被广泛使用。
1. java.util包中的日期处理
在java.util包中,主要的日期时间类有:
- Date:表示某个时间点上的日期和时间
- Calendar:可以用于处理日期和时间,支持时区和日历
- SimpleDateFormat:用于格式化日期和时间
下面是一些常见的日期格式:
- yyyy:年份,如1999
- MM:月份,如04
- dd:日期,如25
- HH:小时,按24小时制,如14
- hh:小时,按12小时制,如02
- mm:分钟,如38
- ss:秒钟,如05
- SSS:毫秒,如789
下面是一个例子:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
System.out.println(formatter.format(date));
}
}
输出结果为:
25/05/2021 14:38:05
2. java.time包中的日期处理
在Java SE 8中,新的日期和时间处理类已经被引入,位于java.time包中。该包中的主要类有:
- LocalDate:表示日期(年月日)。
- LocalTime:表示时间(小时,分钟,秒钟和毫秒)。
- LocalDateTime:表示日期和时间。
- ZonedDateTime:表示带时区的日期和时间。
- DateTimeFormatter:用于格式化日期和时间。
下面是一个例子:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
System.out.println(now.format(formatter));
}
}
输出结果为:
25/05/2021 14:39:11
3. 日期和时间的计算
使用日期和时间处理类,可以进行日期和时间的计算。下面是一些常见的计算方法:
- plusYears(long years):增加指定年数
- plusMonths(long months):增加指定月数
- plusDays(long days):增加指定天数
- plusHours(long hours):增加指定小时数
- plusMinutes(long minutes):增加指定分钟数
- plusSeconds(long seconds):增加指定秒数
- plusMillis(long millis):增加指定毫秒数
下面是一个例子:
import java.time.LocalDateTime;
public class LocalDateTimeCalculationExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
LocalDateTime tomorrow = now.plusDays(1);
LocalDateTime nextWeek = now.plusWeeks(1);
System.out.println("Now: " + now);
System.out.println("Tomorrow: " + tomorrow);
System.out.println("Next week: " + nextWeek);
}
}
输出结果为:
Now: 2021-05-25T14:43:43.666004 Tomorrow: 2021-05-26T14:43:43.666004 Next week: 2021-06-01T14:43:43.666004
4. 日期和时间的比较
使用日期和时间处理类,可以进行日期和时间的比较。下面是一些常见的比较方法:
- isAfter(ChronoLocalDateTime<?> other):判断当前日期和时间是否晚于指定日期和时间
- isBefore(ChronoLocalDateTime<?> other):判断当前日期和时间是否早于指定日期和时间
- isEqual(ChronoLocalDateTime<?> other):判断当前日期和时间是否等于指定日期和时间
下面是一个例子:
import java.time.LocalDateTime;
public class LocalDateTimeComparisonExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
LocalDateTime tomorrow = now.plusDays(1);
if (now.isBefore(tomorrow)) {
System.out.println("Tomorrow is after today.");
} else {
System.out.println("Today is after tomorrow.");
}
}
}
输出结果为:
Tomorrow is after today.
总结:
Java提供了丰富的日期时间处理类,开发者可以根据需要使用不同的类来完成日期时间的处理。在Java SE 8中,java.time包中的日期时间处理类被推荐使用。理解这些日期时间处理类的用法,可以为开发者在处理和计算日期时间问题时提供很大的方便。
