SimpleDateFormat Неправильно анализирует "ГГГГ-ММ-дд ЧЧ:мм"
При попытке проанализировать строку в формате "ГГГГ-ММ" -dd HH:mm" для даты, некоторые разработчики сталкиваются с неожиданными результатами даты. Это происходит при использовании класса SimpleDateFormat с мягким параметром, установленным на false.
Следующий фрагмент кода демонстрирует проблему:
Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
newDate = df.parse(dateTime);
} catch (ParseException e) {
throw new InvalidInputException("Invalid date input.");
}
Этот код выдает неправильную дату:
Sun Dec 30 08:30:00 EST 2012 (wrong)
Чтобы решить эту проблему, убедитесь, что указан формат года в шаблоне SimpleDateFormat «гггг» записано строчными буквами, а не прописными. "ГГГГ."
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);
При внесении этой корректировки код будет анализироваться строка «ГГГГ-ММ-дд ЧЧ:мм» правильно. Дополнительную информацию см. в документации SimpleDateFormat.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3