gpt4 book ai didi

java - 比较用户定义的时间和当前时间Java

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

我正在尝试将用户定义的时间(格式为 HH:MM)与无限循环中的当前时间进行比较。当它们相等时,应该发生一些操作。

我使用了以下代码:

//taking user input
DateFormat sdf = new SimpleDateFormat("hh:mm");
String time = jFormattedTextField1.getText();
userTime = sdf.parse(time);

//taking current time
Date timeNow = new Date();
while (true){
if (timeNow.equals(userTime)){
System.out.println("The time equals, task is done!");
ChangingWindow window = new ChangingWindow(chosenColor);

当我打印这两个时间点时,我收到以下信息:

用户时间:1970 年欧洲中部时间 1 月 1 日星期四 10:35:00

当前时间:2015 年欧洲中部夏令时间 9 月 29 日星期二 10:33:21

当前时间显然没问题,但对于用户定义的时间,他不断返回纪元。如果有人有任何建议,我将不胜感激!

最佳答案

如果您只想比较时间HH:MM,我建议使用LocalTime :

"LocalTime is an immutable date-time object that represents a time, often viewed as hour-minute-second."

"This class does not store or represent a date or time-zone. Instead, it is a description of the local time as seen on a wall clock."

LocalTime user = LocalTime.parse("12:55");
LocalTime now = LocalTime.now().truncatedTo(ChronoUnit.MINUTES);

if (user.equals(now)) { ... }

编辑:回复您的评论

userTimetimeNow 未更新,因此在每次迭代中您始终比较相同的值。结果不会改变。您需要更新 while 内的 timeNow

无论如何,我不认为 while (true) 是一个好主意。我不知道你需要实现什么,但如果你想等到用户时间达到,那么我会确定到那时为止的剩余时间,并让进程 hibernate 这段时间。像这样的东西:

long time = Duration.between(now, user).toMillils();
Thread.sleep(time);

关于java - 比较用户定义的时间和当前时间Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32840080/

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