扫描仪中的时间

问题描述 投票:0回答:1

我一直在尝试编写一个应用程序,您可以在其中放置时间和想要执行的任务,并且一旦时间“到”,它将打印出您必须执行此任务。这是我已经拥有的:

import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class task {
    Scanner scanner=new Scanner(System.in);
    String taskname;
    DateTimeFormatter timecheck = DateTimeFormatter.ofPattern("HH:mm:ss");
    public task()
    {
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
        LocalDateTime currenttime = LocalDateTime.now();
        System.out.println("Name of the task:");
        taskname=scanner.nextLine();
        System.out.println("Time at which you want to do that task:");
        LocalDateTime timeofthetask = LocalDateTime.parse(scanner.next());
        if(currenttime==timeofthetask)
        {
            System.out.println("It's time to do the task"+taskname);
        }
    }
}

然后,在主类中,我有一个非常简单的东西,基本上只运行该类:

public class MainClass
{   
    public static void main(String [] args)
    {
        task t1=new task();
    }
}

运行此命令后,一切都会非常顺利,直到我尝试输入一段时间后,在运行代码后立即出现错误。该错误称为java.time.format.DateTimeParseException,有人知道我可以对此做些什么吗?

java java.util.scanner
1个回答
0
投票

首先,由于parse()代码很容易引发异常,因此您应该将调用包含在try catch中。

然后,您的代码可以很好地运行,但是您需要以这种格式输入时间:

2007-12-03T10:15:30

https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html#parse-java.lang.CharSequence-

如果需要其他格式,则需要格式化程序。

© www.soinside.com 2019 - 2024. All rights reserved.