首页 文章

ParseExeption与日期?

提问于
浏览
2

解析日期格式时遇到异常?

java.text.ParseException: Unparseable date: "10-10-2016"

在这一行:

newSelection5 = DateFormat.getDateInstance().parse((String)CalDcB.getSelectedItem());

日期设置为: CalDcB = new DateComboBox(new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH));

我也试过没有Locale.English .

还存在危险警报“无效” .

4 回答

  • 1

    您可以构造一个与您的格式匹配的SimpleDateFomat并使用它 .

    DateFormat df = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
    Date d = df.parse("10-10-2016");
    
  • 3

    tl;博士

    LocalDate.parse( 
        "30-10-2016" , 
        DateTimeFormatter.ofPattern( "dd-MM-uuuu" ) 
    )
    

    LocalDate

    仅供参考,您现在正在使用麻烦的旧日期时间类 . 由java.time类取代 .

    LocalDate类表示没有时间且没有时区的仅日期值 .

    DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" );
    LocalDate ld = LocalDate.parse( "30-10-2016" , f );
    

    ld.toString():2016-10-30

    关于java.time

    java.time框架内置于Java 8及更高版本中 . 这些类取代了麻烦的旧日期时间类,例如java.util.Date.Calendarjava.text.SimpleDateFormat .

    Joda-Time项目现在位于maintenance mode,建议迁移到java.time .

    要了解更多信息,请参阅Oracle Tutorial . 并搜索Stack Overflow以获取许多示例和解释 .

    从哪里获取java.time类?

    ThreeTen-Extra项目使用其他类扩展java.time . 该项目是未来可能添加到java.time的试验场 . 您可以在这里找到一些有用的类,例如IntervalYearWeekYearQuartermore .

  • 0

    试试这个:

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
        Date date = simpleDateFormat.parse("10-10-2016");
    
  • 0

    好的,它没有例外 .

    我用了:

    DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
    newSelection5 = df.parse((String)CalDcB.getSelectedItem());
    

    谢谢

相关问题