gpt4 book ai didi

java - SimpleDate 类的线程 "main"java.util.InputMismatchException 中出现异常

转载 作者:行者123 更新时间:2023-12-01 13:25:44 25 4
gpt4 key购买 nike

该程序用于转换 ISO 日期(例如:2014-02-15)并能够将其转换为“2014 年 2 月 15 日”,但我在构造函数方面遇到了麻烦,这是迄今为止我所拥有的:

public SimpleDate(String isoDate)
{
// test print
System.out.println(isoDate);

Scanner sc = new Scanner(isoDate);
sc.useDelimiter("­-");

this.year = sc.nextInt();
this.month = sc.nextInt();
this.day = sc.nextInt();

System.out.println(year);
}//constructor

我在 main 中有一个测试:

public static void main(String[] args)
{

SimpleDate date = new SimpleDate("2014-12-12");

}//main

按原样运行代码时,我在构造函数中获取要执行的测试打印,但很快就收到此错误:

Test Print: 2014-12-12
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at SimpleDate.<init>(SimpleDate.java:19)
at SimpleDate.main(SimpleDate.java:68)

最佳答案

我建议使用“标准”日期类来执行这个简单的转换。此代码应该可以帮助您做到这一点:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDate {
private Date date ;
public SimpleDate(String isoDate) throws ParseException
{
date = new SimpleDateFormat("yyyy-MM-dd").parse(isoDate);
}
private String convert() {
return new SimpleDateFormat("MMMMM d yyyy").format(date);
}
public static void main(String[] args) throws ParseException
{
System.out.println( new SimpleDate("2014-02-15").convert());

}//main

}

关于java - SimpleDate 类的线程 "main"java.util.InputMismatchException 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21816364/

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