- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个字符串格式的时间戳和偏移量,如下所示在两个不同的变量中:
01/14/2016 07:37:36PM
-08:00
我想将上面的时间戳转换为 ISO 8601 兼容字符串,带有毫秒和时区
,因此转换后应该如下所示:
2016-01-14T19:37:36-08:00
我怎样才能做到这一点?我正在使用 jodatime 库。
最佳答案
较新的 java.time
类与 ISO 8601 字符串配合得很好。
String dateTimeString = "01/14/2016 07:37:36PM";
String offsetString = "-08:00";
LocalDateTime dateTime = LocalDateTime.parse(dateTimeString,
DateTimeFormatter.ofPattern("MM/dd/uuuu hh:mm:ssa"));
ZoneOffset offset = ZoneOffset.of(offsetString);
String formattedTimestamp = dateTime.atOffset(offset).toString();
System.out.println(formattedTimestamp);
这会打印
2016-01-14T19:37:36-08:00
远离过时的类,例如 SimpleDateFormat
。
什么是offsetString
不存在?据我所知,在这种情况下,您需要 UTC 的 Z
偏移量。例如这样:
ZoneOffset offset;
if (offsetString == null) {
offset = ZoneOffset.UTC;
} else {
offset = ZoneOffset.of(offsetString);
}
String formattedTimestamp = dateTime.atOffset(offset).toString();
使用 null
offsetString
我们现在得到
2016-01-14T19:37:36Z
java.time
中的类(我只使用了其中的几个)在 JSR-310 中进行了描述,并且内置于 Java 8 中。如果您想使用它们怎么办使用 Java 6 或 7?您将获得 ThreeTen Backport(下面的链接)。它为您提供了 Java 6 和 7 的大部分类。我不太乐意告诉您您需要一个外部库,但在这种情况下,直到您迁移到 Java 8 为止。我希望您很快就会这么做。
我确信使用 JodaTime 也可以完成此操作,但我没有使用它的经验,因此无法向您提供详细信息。据我所知,我已经阅读了 JodaTime 背后的人员现在建议您改用 java.time
。因此,我要求您将一个外部库更换为更新的(据说更好)的外部库。就其本身而言,我对此并不满意。仅当您已经拥有使用 JodaTime 的代码库时,这才不是一件小事。
关于java - 将字符串时间戳转换为符合 ISO 8601 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43698451/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!