Java函数处理日期和时间的方法和示例代码。
Java中日期和时间的处理非常方便,Java8中引入的时间API,可以更加方便的处理日期和时间。本文将讨论Java中日期和时间的处理方法和一些示例代码。
一、日期和时间的表示方式
在Java中,日期和时间可以用以下类进行表示:
1. java.util.Date
java.util.Date类表示一个固定的时间点,但它不封装处理日期和时间的方法。
2. java.util.Calendar
java.util.Calendar类是一个抽象的类,提供了和时间日期有关的操作,包括获取和设置年月日时分秒等。
3. java.time.LocalDateTime
java.time.LocalDateTime类表示一个包含日期和时间的时间点。
4. java.time.LocalDate
java.time.LocalDate类表示一个日期,不包括时间。
5. java.time.LocalTime
java.time.LocalTime类表示一天内的时间,不包括日期。
6. java.time.ZonedDateTime
java.time.ZonedDateTime类表示一个包含时区和日期时间的时间点。
二、Java8时间API
Java8的时间API提供了类似Joda-Time的功能,应该可以大多数情况下代替早期的API。Java8同时提供了许多新的类来表示日期、时间和日期时间等类型。这些日期/时间类经过重新设计,使它们更加易于使用和安全。在使用这些日期/时间类之前,需要先导入Java8时间相关的类。
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.format.DateTimeFormatter;
三、Java8时间API的用法
1. LocalDate类
示例代码:
LocalDate date = LocalDate.now();
System.out.println(date);
输出结果:
2016-11-09
使用LocalDate类,可以获取当天日期。LocalDate.now()方法返回一个表示当前日期的LocalDate对象。LocalDate类实例是不可修改的,类似于String类的风格。因此,该类中的修改方法都返回一个新的日期对象。
示例代码:
LocalDate firstDay_2016 = LocalDate.of(2016, Month.JANUARY, 1);
输出结果:
2016-01-01
使用LocalDate类,可以创建一个指定日期的对象。of()方法接收三个参数:年、月、日。of()方法有一些重载版本,可以接受一个或多个参数来创建不同的日期对象。
示例代码:
LocalDate tomorrow = LocalDate.now().plusDays(1);
System.out.println(tomorrow);
输出结果:
2016-11-10
使用plusDays()方法,可以在当前日期上添加或减少天数。该方法返回一个新的日期对象。
2. LocalTime类
示例代码:
LocalTime time = LocalTime.now();
System.out.println(time);
输出结果:
10:10:15.048
使用LocalTime类,可以获取当前时间。LocalTime.now()方法返回一个表示当前时间的LocalTime对象。LocalTime类实例是不可修改的,类似于String类的风格。因此,该类中的修改方法都返回一个新的时间对象。
示例代码:
LocalTime newTime = time.plusHours(2);
System.out.println(newTime);
输出结果:
12:10:15.048
使用plusHours()方法,可以在当前时间上添加或减少小时数。该方法返回一个新的时间对象。
3. LocalDateTime类
示例代码:
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime);
输出结果:
2016-11-09T10:14:13.992
使用LocalDateTime类,可以获取当前日期时间。LocalDateTime.now()方法返回一个表示当前日期时间的LocalDateTime对象。LocalDateTime类实例是不可修改的,类似于String类的风格。因此,该类中的修改方法都返回一个新的日期时间对象。
示例代码:
LocalDateTime nextYear = dateTime.plusYears(1);
System.out.println(nextYear);
输出结果:
2017-11-09T10:14:13.992
使用plusYears()方法,可以在当前日期时间上添加或减少年份。该方法返回一个新的日期时间对象。
4. DateTimeFormatter类
示例代码:
LocalDateTime dateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
System.out.println(formattedDateTime);
输出结果:
2016-11-09 10:18:20
使用DateTimeFormatter类,可以将日期时间格式化为指定的格式。ofPattern()方法接收一个字符串参数,该字符串指定日期时间的格式。format()方法接收一个DateTimeFormatter对象作为参数,并返回一个字符串,该字符串包含格式化后的日期时间。
