Формат SQL timeStamp отличается в Windows и Ubuntu

0

У меня есть db в mysql, в котором один столбец имеет тип данных timstamp. Он сохраняет timstamp в этом формате yyyy-mm-dd hh-mm-ss как на окнах, так и на linux. Но когда я получаю данные из mysql из моего java-кода, он приносит данные в этом формате May 11, 2018, 11:35:34 AM на мои окна и в этом формате May 11, 2018 11:35:34 AM на linux ubuntu,

Как сделать формат временной метки согласованным?

  • 1
    Просто чтобы подтвердить мое подозрение: может быть, вы используете JDK9 в Windows и 8 в Linux?
  • 0
    Я использую JDK9 на моей машине с Windows и JDK8 на моей машине с Linux.
Теги:
timestamp

1 ответ

1
Лучший ответ

Это вызвано изменением поведения в JDK9, где используются форматы по умолчанию, которые теперь используются в Unicode CLDR, как описано здесь:

https://docs.oracle.com/javase/9/intl/internationalization-enhancements-jdk-9.htm#JSINT-GUID-9DCDB41C-A989-4220-8140-DBFB844A0FCA

В статье объясняется один из способов изменения этого поведения, переопределяя свойство java.locale.providers.

Решение, которое я бы предпочел (хотя, хотя и более продуманно, это также обеспечивает большую гибкость) заключается в том, чтобы всегда использовать явный форматтер для значений даты. Например, посмотрите здесь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню