首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将TimeStamp接口转换为本地TimeStamp

将TimeStamp接口转换为本地TimeStamp
EN

Stack Overflow用户
提问于 2019-01-09 00:26:13
回答 1查看 360关注 0票数 0

我需要你帮我弄一下代码。我的接口有UTC格式的TimeStamp,我需要把它转换成我本地的TimeStamp,即CST。

例如:我的接口的TimeStamp值为: 2019-01-08T13:17:53.4225514 (单位为UTC)。

我需要输出像2019年1月8日上午8:28:18.514 (这是在CST我的当地时间)

如何将其转换为本地TimeStamp?

Timestamp createdOn = api.getCreatedOn();(这里我从接口中获取TimeStamp作为Object )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-09 05:52:09

毕竟,要做好这件事有点困难。

下面是如何在UTC中解析字符串时间戳,以获得首选时区的ZonedDateTime对象:

代码语言:javascript
复制
// define formatter once to be re-used wherever needed
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
        .appendPattern("yyyy-MM-dd'T'HH:mm:ss") // all fields up seconds
        .appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true) // handle variable-length fraction of seconds
        .toFormatter();

String text = "2019-01-08T13:17:53.4225514";

LocalDateTime localTime = LocalDateTime.parse(text, formatter); // parse string as a zone-agnostic LocalDateTime object
ZonedDateTime utcTime = localTime.atZone(ZoneId.of("UTC")); // make it zoned as UTC zoned
ZonedDateTime cstTime = utcTime.withZoneSameInstant(ZoneId.of("America/Chicago")); // convert that date to the same time in CST

// print resulting objects
System.out.println(utcTime);
System.out.println(cstTime);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54095847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档