gpt4 book ai didi

java - 将 java.sql.Timestamp 转换为 java.util.Calendar ISO 8601 格式

转载 作者:行者123 更新时间:2023-12-01 14:09:16 36 4
gpt4 key购买 nike

我必须将更新的时间存储在 dynamodb , 在浏览 dynamodb 的文档时发现如果我们以 ISO 8601 格式存储它,我们可以建立一个索引。但在应用程序中我有 java.sql.timestamp .我怎样才能转换它?

最佳答案

java.time

第一个回答,不要用java.sql.Timestamp .这门课已经过时了。获取 Instant反而。 Instantjava.time 中的类之一,现代 Java 日期和时间 API,也称为 JSR 310。与旧类相比,该 API 更易于使用。假设 inst是你的 Instant :

    String iso8601String = inst.toString();
System.out.println(iso8601String);

在我的电脑上,这只是打印出来的
2017-12-13T11:04:59.282Z
toString现代类的方法生成 ISO 8601 格式,这使您的任务非常容易。

转换您的时间戳

因为(据我所知)你得到你的 Timestamp您现在无法升级的遗留代码中的对象:首先要做的是将其转换为 Instant .然后你可以按照上面的方法进行。

我假设 ts是你的时间戳。如果您使用的是 Java 8 或更高版本:
    String iso8601String = ts.toInstant().toString();

如果您使用的是 Java 6 或 7,则需要获取 ThreeTen Backport(链接如下)。这是 JSR 310 向上述 Java 版本的反向移植。因为在这些版本中,转换方法没有内置在 Timestamp 中。类,转换发生的有点不同,其他一切都是一样的。我还没有测试以下代码行,所以请容忍任何错字。
    String iso8601String = DateTimeUtils.toInstant(ts).toString();

友情链接
  • ThreeTen Backport homepage
  • Java Specification Request (JSR) 310
  • Oracle tutorial trail: Date Time
  • 关于java - 将 java.sql.Timestamp 转换为 java.util.Calendar ISO 8601 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47785994/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com