Пользователь вводит дату следующим образом:Как проверить дату в формате США в Java
20/05/2015
Теперь мы знаем, что в США формат эта дата является недействительным. Как я могу проверить это в java? В моем коде я получаю значение даты с листа excel, и в настоящее время я так обрабатываю его. Дата, считанная с листа excel, является числовой. Например, 3124,0, т.е. нет. дней, прошедших с 1 января 1990 года. Я преобразовав его в формат ММ/ДД/YYY:
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YYYY");
String s = sdf.format(cell.getDateCellValue());
метод формат SimpleDateFormat принимает дату в качестве параметра. поэтому 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));
так что теперь, если значение первенствует клетка 12/08/2015
System.out.println(s); // prints 12/08/2015
System.out.println(sdf.format(d)); //Prints 12/28/2015
не понимают.
Является ли дата, хранящаяся в Excel в виде строки или в качестве даты? И если это дата, возможно ли, по-видимому, автоматическая замена правил форматирования на ячейке для Worldwide, а не для форматирования в США? – Gagravarr
Если пользователь вводит дату, такую как '1/1/1', она может быть в любом из шести форматов. Как программное обеспечение должно проверять, что находится в сознании пользователей? Чтобы программное обеспечение могло надежно определять формат даты, вам необходимо ограничить ввод пользователя. –
Значение даты от excel относится к дате из-за этого кода: 'cell.getDateCellValue());' – coder