У меня было поле «Желаемая дата начала», которое было текстовым полем. Я хранил дату как long
в mongoDb и отображал ее как String
, а также получал ее как String
с классом SimpleDateFormat
. Я узнал о <input type="date">
и сейчас пытаюсь заставить его работать. Я пытаюсь выбрать дату в формате ГГГГ-ММ-ДД и отобразить ее в формате ГГГГ-ММ-ДД, но в календаре ничего не меняется.
public class DateFormatterUtils {
public static Long formatDate(String date) {
if (date != null && !date.equals("")) {
List<SimpleDateFormat> datePatterns = new ArrayList<SimpleDateFormat>();
datePatterns.add(new SimpleDateFormat("dd MM yyyy"));
datePatterns.add(new SimpleDateFormat("dd-MM-yyyy"));
datePatterns.add(new SimpleDateFormat("dd/MM/yyyy"));
datePatterns.add(new SimpleDateFormat("dd.MM.yyyy"));
datePatterns.add(new SimpleDateFormat("dd,MM,yyyy"));
datePatterns.add(new SimpleDateFormat("ddMMyyyy"));
datePatterns.add(new SimpleDateFormat("dd:MM:yyyy"));
datePatterns.add(new SimpleDateFormat("dd_MM_yyyy"));
datePatterns.add(new SimpleDateFormat("MM/dd/yyyy"));
datePatterns.add(new SimpleDateFormat("YYYY-MM-DD"));
datePatterns.add(new SimpleDateFormat("yyyy-mm-dd"));
for (SimpleDateFormat pattern : datePatterns) {
try {
return pattern.parse(date).getTime();
} catch (ParseException e) {
}
}
}
return null;
}
public static String readDate(Long timeStamp) {
if (timeStamp == null) {
return "";
}
SimpleDateFormat formatter = new SimpleDateFormat("YYYY-MM-DD");
Date date = new Date(timeStamp);
return formatter.format(date);
}
}
Это мой старый метод, помогающий мне получать входные данные в разных форматах, и readDate()
отображал его в формате дд / мм / гггг. Я проверил в документации, и дата в формате YYYY-MM-DD. Когда представление генерируется с помощью тимьяна, поле этого календаря остается в виде мм / дд / гггг без выбранной даты