美國格式的用戶輸入如下日期:如何檢查日期是在java中
20/05/2015
現在我們知道,在美國格式化這個日期無效。 我如何檢查在java中? 在我的代碼中,我從Excel工作表中獲取日期值,目前我正在處理它。從excel表讀取的日期是數字。例如-3124.0,即no。自1990年1月1日以來經過的日子。我將它轉換爲MM/dd/yyy格式:
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
String s = sdf.format(cell.getDateCellValue());
SimpleDateFormat的格式化方法需要將date作爲參數。因此cell.getDateCellValue()給出了傳遞給format方法的日期類型值,該方法將其轉換爲字符串值。
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
String s = sdf.format(cell.getDateCellValue());
System.out.println(s);
sdf.setLenient(false);
Date d= sdf.parse(s);
System.out.println(sdf.format(d));
所以現在如果Excel單元格的值是2015年12月8日
System.out.println(s); // prints 12/08/2015
System.out.println(sdf.format(d)); //Prints 12/28/2015
不明白。
日期存儲在Excel中的日期是字符串還是日期?如果這是一個日期,那麼excel可能會自動將單元格上的格式化規則切換爲全局而不是美國格式? – Gagravarr
如果用戶輸入日期,例如「1/1/1」,它可以是六種格式中的任何一種。軟件應該如何檢查用戶頭腦中的內容?要使軟件可靠地確定日期格式,您需要限制用戶輸入。 –
由於以下代碼,來自excel的日期值以date的形式出現:'cell.getDateCellValue());' – coder