【问题标题】:Parse a date string stored in Excel file解析存储在 Excel 文件中的日期字符串
【发布时间】:2014-03-12 06:42:05
【问题描述】:

我无法解析存储在 Excel 文件中的日期。 我的代码sn-ps如下:

SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
Date parsed = format.parse(row.getCell(1).toString());
Date jdate = format.parse(row.getCell(4).toString());

我的错误是:

无法解析日期 08-Jun-2012。

在 Excel 文件中,日期存储为 08-06-2012。但它以 2013 年 6 月 8 日为准。

【问题讨论】:

标签: java date formatting simpledateformat


【解决方案1】:

检查您的 Excel 文件中的日期格式。它可能是 DD-Mmm-YYYY。通过将其更改为 DD-MM-YYYY 你可以解析我猜。

【讨论】:

    【解决方案2】:

    使字符串显式

    调试时,拆开复杂的语句来验证各个部分。在这种情况下,将这些行 getter 调用移动到单独的行,将值分配给 String 变量。

    小心使用格式化程序

    您需要仔细研究格式化程序的文档,然后仔细检查模式字符。

    在你的情况下:

    • “dd-MM-yyyy”的格式是数字月份
    • “dd-MMM-yyyy”格式是月份的文本(月份名称)

    示例代码

    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
    

    【讨论】:

      【解决方案3】:

      你可以试试这个:-

      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);
          }
      

      它的展示 - Sat Jun 08 00:00:00 IST 2013

      使用dd-MMM-yyyy 而不是dd-MM-yyyy

      希望对你有所帮助。

      【讨论】:

        猜你喜欢
        • 2014-10-11
        • 1970-01-01
        • 2011-07-21
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多