簡體   English   中英

java.text.ParseException 無法解析的日期

[英]java.text.ParseException Unparseable date

當我將特定格式應用於日期時出現解析異常。

這是我的代碼:

System.out.println("*********************1**********************");

if(row.getCell(67).toString().equals("null"))
{
    System.out.println("*********************2**********************");

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 1988);
    cal.set(Calendar.MONTH, Calendar.JUNE);
    cal.set(Calendar.DAY_OF_MONTH, 1);
    Date dateRepresentation = cal.getTime();
    rfx.setRv_rc_date(dateRepresentation);
}
else
{
    Calendar cal = Calendar.getInstance();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd", Locale.ENGLISH);
    cal.setTime(sdf.parse(row.getCell(67).toString()));
    System.out.println("******************************************************");
    System.out.println(cal);
    System.out.println("*******************************************************");
}

這是錯誤:

java.text.ParseException:無法解析的日期:“30-janv.-2020”

您正在嘗試解析法國日期(janv. 是 janvier 或英語中 January 的縮寫),因此您必須使用Locale.FRENCH而不是Locale.ENGLISH ,如下所示:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.FRENCH);
Date date = sdf.parse("30-janv.-2020");

請使用java.time api 代替DateCalendar類,除非您有特定的理由這樣做。

看來你想解析一個法國日期,所以你必須使用Locale.FRENCH

String dateval = row.getCell(67).toString();
SimpleDateFormat sdf= new SimpleDateFormat( "dd-MMM-yyyy", Locale.FRENCH );
Date date = sdf.parse( dateval );
System.out.println(date);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM