gpt4 book ai didi

Java - 自动生成当天+用户输入时间

转载 作者:行者123 更新时间:2023-11-30 02:10:38 25 4
gpt4 key购买 nike

目前我得到了一个带有日期数据类型的“Flight”类;出发和到达日期时间。

航类的添加是通过用户输入进行的。该日期应自动为当前日期,时间由用户选择。这意味着一个人只需输入 HH:mm。

目前所有的选择都有点令人困惑;时间戳、日期、本地时间等

如何使用扫描仪进行简单的用户输入来解决此问题?它应该采用今天的日期,添加包含时间的用户输入并将其添加在一起以适合我的日期数据类型。

有人知道如何做到这一点或者可以提供一些提示/最佳实践吗?

最佳答案

既然您说您正在开发桌面应用程序并且需要当前日期(在电脑上),您可以使用 LocalDateLocalTime 的组合来实现您的目标。

这是代码:

public static void main(String[] args) {
LocalDate currentDate = LocalDate.now();
LocalTime userInputTime = null;

Scanner sc = new Scanner(System.in);
String dateTimeLine = sc.nextLine();
sc.close();

DateTimeFormatter dt = DateTimeFormatter.ofPattern("HH:mm");
userInputTime = LocalTime.parse(dateTimeLine,dtf);

System.err.println(LocalDateTime.of(currentDate, userInputTime));
}

首先,使用 LocalDate.now() 生成当前日期(仅日期,没有小时、分钟和秒)。

接下来我们使用Scanner来读取用户输入的字符串。为了将字符串转换为 LocalTime(此类仅包含一天中的时间信息,因此它具有小时、分钟、秒和纳秒的值),我们必须定义一个 日期时间格式化程序DateTimeFormatter 定义如何将字符串转换为 LocalTime 实例。

在我刚刚编写的代码中,我说过字符串输入的类型为“小时:分钟”。例如,可能的值为:

“10:25”- 10 小时 25 分钟,

“23:00”- 23 小时 0 分钟,

“02:13”- 2 小时 13 分钟。

创建 LocalTime 对象后,我们所要做的就是连接日期和时间对象,以创建 LocalDateTime 对象,这是在这一行中完成的:

LocalDateTime.of(currentDate, userInputTime)

假设您当前电脑上的日期是 2018-05-06。如果您运行该程序并在控制台中输入 10:50,则输出应该是一个 LocalDateTime 对象,其中日期为 2018-05-06,一天中的时间为 10 小时 50 分钟。

值得注意的是这一行:

userInputTime = LocalTime.parse(dateTimeLine,dtf);

如果用户输入的字符串不满足要求的格式,将抛出java.time.format.DateTimeParseException

关于Java - 自动生成当天+用户输入时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50199281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com