SimpleDateFormatter.parse выводит данные, отличные от указанных
При преобразовании временных меток UNIX в даты с помощью SimpleDateFormat вы можете столкнуться с несоответствиями между указанным форматом и вывод.
В данном примере цель состоит в том, чтобы преобразовать метку времени UNIX («a1527069600») в дату в формате «дд/ММ/гггг чч:мм:сс a». Однако использование SimpleDateFormatter.format, за которым следует SimpleDateFormatter.parse, дает другой результат.
Причина несоответствия
Несоответствие возникает потому, что SimpleDateFormatter.parse ожидает строку в точном формат, указанный во время создания экземпляра («дд/ММ/гггг чч:мм:сс а»). В этом случае SimpleDateFormatter.format выводит дату в формате, отличном от ожидаемого формата ввода, что приводит к сбою операции синтаксического анализа.
Решение
Чтобы избежать этой проблемы , рекомендуется не передавать строки даты в базы данных MySQL. Вместо этого используйте объекты даты. Современный API даты и времени Java, java.time, предоставляет такие классы, как LocalDateTime, которые упрощают обработку дат.
Пример:
String ep = "a1527069600";
long epoch = Long.parseLong(ep.substring(1));
Instant inst = Instant.ofEpochSecond(epoch);
LocalDateTime ldt = inst.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime();
System.out.println(ldt.toString()); // Output: 2018-05-23T15:30
PreparedStatement ps = myDatabaseConnection.prepareStatement(
"insert into my_table (my_date_time) values (?)");
ps.setObject(1, ldt);
Этот код преобразует временную метку UNIX в LocalDateTime, которую можно напрямую вставить в базу данных MySQL.
Вывод:
Используя java.time и передавая объекты даты вместо строк в MySQL, вы можете устранить проблемы с форматированием и обеспечить точность преобразования даты.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3