【问题标题】:convert MYSQL datetime value to UTC Timezone format yyyy-MM-dd'T'HH:mm:ss'Z'将 MYSQL 日期时间值转换为 UTC 时区格式 yyyy-MM-dd'T'HH:mm:ss'Z'
【发布时间】:2016-04-18 20:13:16
【问题描述】:

这里是 MYSQL 和 java 的新手。我正在尝试使用 REST API 应用程序中的请求转换从 MYSQL 数据库表中检索的给定日期时间值。生成的 json 将显示这一点,我发现他们提到杰克逊时区格式的链接听起来很复杂。难道没有简单正确的方法来做到这一点吗?

if(rs.getTimestamp(5) != null){
ZonedDateTime zdt = ZonedDateTime.of(rs.getTimestamp(5).
    toLocalDateTime(), ZoneOffset.UTC);
pObject.setContractExpiration(zdt.get??????);

找到了上面的例子,但不知道在这里放什么 zdt.get??????。我的 pObject 类需要一个 Timestamp 值。忘记加了,必须是这个格式:

final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

【问题讨论】:

  • 你的 sql 时间戳中是否也有时区?
  • 没有。默认格式为 yyyy-MM-dd HH:mm:ss,MYSQL 默认为本地时间

标签: java mysql spring timezone


【解决方案1】:
java.util.Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME);
cal.setTime(ts);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(sdf.format(cal.getTime()));

【讨论】:

  • 谢谢,试试这个。等待时出现的快速相关问题。 MYSQL能否支持这种格式yyyy-MM-dd'T'HH:mm:ss'Z'; ISO8601。只是认为如果可以的话,最好保持源相同。
  • @vbNewbie - 在大多数情况下,日期和时间在存储在数据库中时没有“格式”。它们以原生二进制形式存储,并以类似的二进制形式传输到应用层。仅当您将值作为字符串中的文本发出时,格式化才适用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
相关资源
最近更新 更多