介绍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代码,提高开发效率。