该程序用于转换 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/