如何在Java 9中使用JShell获取日期和时间?

介绍Java 9 JShell

在Java 9中添加了一个新的交互式工具JShell,它可用于执行代码片段。这意味着我们可以使用 JShell 来快速测试 Java 代码。当然,在开发过程中,我们会遇到很多日期和时间的问题。在这篇文章中,我们将讨论如何在Java 9中使用JShell获取日期和时间。

在开始之前,假设您已经熟悉Java基础知识。

获取当前日期和时间

使用Java 9的JShell获取当前日期和时间非常简单。我们可以使用内置的日期和时间类来实现它。下面是一个例子:

import java.time.LocalDateTime;

LocalDateTime now = LocalDateTime.now();

System.out.println("Current DateTime: " + now);

在这段代码中,我们导入了java.time.LocalDateTime类并使用LocalDateTime.now()方法获取当前日期和时间。我们还使用System.out.println()将当前日期和时间打印到控制台。

让我们在JShell中运行这段代码:

[lvt@lvt]$ /usr/local/jdk-13/bin/jshell

| Welcome to JShell -- Version 13

| For an introduction type: /help intro

jshell> import java.time.LocalDateTime;

jshell> LocalDateTime now = LocalDateTime.now();

now ==> 2021-09-29T03:37:24.973204700

jshell> System.out.println("Current DateTime: " + now);

Current DateTime: 2021-09-29T03:37:24.973204700

我们可以看到,在JShell中运行的结果与使用Java代码编辑器的结果相同。它显示了当前日期和时间。

获取指定日期和时间

上面的例子展示了如何获取当前日期和时间。但是,如果我们需要获取指定日期和时间呢?我们可以使用LocalDateTime.of()方法来创建一个指定日期和时间的对象。下面是一个例子:

LocalDateTime dateTime = LocalDateTime.of(2019, 8, 21, 12, 45, 30);

System.out.println("Specified DateTime: " + dateTime);

在这段代码中,我们使用LocalDateTime.of()方法创建了一个指定日期和时间的对象,并使用System.out.println()将其打印到控制台。

让我们在JShell中运行这段代码:

jshell> LocalDateTime dateTime = LocalDateTime.of(2019, 8, 21, 12, 45, 30);

dateTime ==> 2019-08-21T12:45:30

jshell> System.out.println("Specified DateTime: " + dateTime);

Specified DateTime: 2019-08-21T12:45:30

我们可以看到,JShell中的输出结果与Java代码编辑器的输出结果相同。

获取年、月、日、小时、分钟和秒

Java 9的日期和时间库提供了多个方法来获取年、月、日、小时、分钟和秒等信息。下面是一个例子:

LocalDateTime now = LocalDateTime.now();

System.out.println("Year: " + now.getYear());

System.out.println("Month: " + now.getMonth());

System.out.println("Day: " + now.getDayOfMonth());

System.out.println("Hour: " + now.getHour());

System.out.println("Minute: " + now.getMinute());

System.out.println("Second: " + now.getSecond());

在这段代码中,我们使用LocalDateTime.now()方法获取当前日期和时间,并使用getYear()getMonth()getDayOfMonth()getHour()getMinute()getSecond()方法获取日期和时间的各个部分,然后用System.out.println()打印输出结果到控制台。

让我们在JShell中运行这个示例:

jshell> LocalDateTime now = LocalDateTime.now()

now ==> 2021-09-26T20:44:17.686665600

jshell> System.out.println("Year: " + now.getYear());

Year: 2021

jshell> System.out.println("Month: " + now.getMonth());

Month: SEPTEMBER

jshell> System.out.println("Day: " + now.getDayOfMonth());

Day: 26

jshell> System.out.println("Hour: " + now.getHour());

Hour: 20

jshell> System.out.println("Minute: " + now.getMinute());

Minute: 44

jshell> System.out.println("Second: " + now.getSecond());

Second: 17

我们可以看到,JShell中的输出结果与Java代码编辑器的输出结果相同。

获取日期和时间格式

Java 9的日期和时间库提供了多个方法来格式化日期和时间。下面是一个例子:

import java.time.format.DateTimeFormatter;

LocalDateTime now = LocalDateTime.now();

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

String formattedDateTime = now.format(formatter);

System.out.println("Formatted DateTime: " + formattedDateTime);

在这段代码中,我们使用import java.time.format.DateTimeFormatter导入DateTimeFormatter类,它提供了许多方法来格式化日期和时间。我们使用DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")方法来定义日期和时间的格式,并使用now.format(formatter)方法将日期和时间格式化为指定格式。然后使用System.out.println()打印输出结果到控制台。

让我们在JShell中运行这个示例:

jshell> import java.time.format.DateTimeFormatter;

jshell> LocalDateTime now = LocalDateTime.now();

now ==> 2021-09-26T20:51:14.306963200

jshell> DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

jshell> String formattedDateTime = now.format(formatter);

formattedDateTime ==> "2021-09-26 20:51:14"

jshell> System.out.println("Formatted DateTime: " + formattedDateTime);

Formatted DateTime: 2021-09-26 20:51:14

我们可以看到,JShell中的输出结果与Java代码编辑器的输出结果相同。

结论

通过这篇文章,我们学习了如何在Java 9中使用JShell获取日期和时间。我们了解了如何获取当前日期和时间、获取指定日期和时间、获取年、月、日、小时、分钟和秒以及获取日期和时间格式。这些能力使得我们可以更快地测试和开发日期和时间相关的Java代码,提高开发效率。

后端开发标签