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

Java函数处理日期和时间的方法和示例代码。

发布时间:2023-06-05 07:16:15

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对象作为参数,并返回一个字符串,该字符串包含格式化后的日期时间。