我无法解析存储在Excel文件中的日期。 我的代码片段如下:
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
Date parsed = format.parse(row.getCell(1).toString());
Date jdate = format.parse(row.getCell(4).toString());
我的错误是:
无法解析2012年6月8日的日期。
在Excel文件中,日期存储为08-06-2012。但它需要它作为2013年6月8日。
答案 0 :(得分:0)
检查excel文件中的日期格式。它可能是DD-Mmm-YYYY。通过将其更改为DD-MM-YYYY,我可以解析。
答案 1 :(得分:0)
调试时,撕开复杂的语句以验证碎片。在这种情况下,将那些行getter调用移到单独的行,将值分配给String变量。
您需要仔细研究格式化程序的文档,然后仔细检查模式字符。
在你的情况下:
String inputDigits = "08-06-2012";
String inputChars = "08-Jun-2013";
java.text.SimpleDateFormat formatDigits = new java.text.SimpleDateFormat( "dd-MM-yyyy" );
java.text.SimpleDateFormat formatChars = new java.text.SimpleDateFormat( "dd-MMM-yyyy" );
java.util.Date dateDigits = null;
java.util.Date dateChars = null;
try {
dateDigits = formatDigits.parse( inputDigits );
dateChars = formatChars.parse( inputChars );
} catch ( ParseException ex ) {
Logger.getLogger( App.class.getName() ).log( Level.SEVERE, null, ex );
}
转储到控制台...
System.out.println( "dateDigits: " + dateDigits );
System.out.println( "dateChars: " + dateChars );
跑步时......
dateDigits: Fri Jun 08 00:00:00 PDT 2012
dateChars: Sat Jun 08 00:00:00 PDT 2013
答案 2 :(得分:0)
你可以试试这个: -
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
String dat="08-Jun-2013";
SimpleDateFormat format=new SimpleDateFormat("dd-MMM-yyyy");
java.util.Date dt=format.parse(dat);
System.out.println("Parsed Date :: "+dt);
}
它的展示 - 2013年6月8日00:00:00 IST 2013
使用dd-MMM-yyyy
代替dd-MM-yyyy
。
希望它会对你有所帮助。