【问题标题】:SQL timeStamp format is different on windows and ubuntuWindows 和 ubuntu 上的 SQL 时间戳格式不同
【发布时间】:2018-05-25 09:53:13
【问题描述】:

我在 mysql 中有一个数据库,其中一列是 timstamp 数据类型。 它在 windows 和 linux 上都以yyyy-mm-dd hh-mm-ss这种格式存储 timstamp。 但是,当我从我的 java 代码中从 mysql 获取数据时,它会在我的 Windows 上以这种格式 May 11, 2018, 11:35:34 AM 和在 linux ubuntu 上以这种格式 May 11, 2018 11:35:34 AM 带来数据。

如何使时间戳格式保持一致?

【问题讨论】:

  • 只是为了证实我的猜想:可能是您在 Windows 上使用 JDK9 而在 Linux 上使用 8?
  • 我在 windows 机器上使用 JDK9,在 linux 机器上使用 JDK8。

标签: mysql linux windows timestamp


【解决方案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 属性。

我更喜欢的解决方案(因为虽然更精细,但它也允许更大的灵活性)是始终对日期时间值使用显式格式化程序。比如看here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 2012-06-13
    相关资源
    最近更新 更多