当前位置: 首页 > 知识库问答 >
问题:

时间戳在本地和可部署环境中表现不同

谯灿
2023-03-14

我有一个Spring boot应用程序,它使用以下方法将时间戳解析为我需要的格式

public static String getDate(String input) {
    DateTimeFormatter parsePattern = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXX");
    LocalDateTime ldt = LocalDateTime.parse(input, parsePattern);
    Date o = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());
    SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
    return sdf.format(o);
}

现在,当该代码在本地机器中执行时,上述方法返回:

2021-08-11T09:00:02.237 05:30

但是当我将其部署到运行nginx服务器的环境时,上述方法返回:

2021-08-11T09:00:02.237Z

现在我的理解是,它正在转换为UTC格式(0000/Z)。如果我错了,请纠正我。但是预期的格式是2021 08-11T09:00:02.237 05:30(忽略05:30。只希望时区以这种格式而不是Z)。我如何在环境中实现这一点?

共有1个答案

董同
2023-03-14
ZonedDateTime nowHere = ZonedDateTime.of(ldt, ZoneId.systemDefault());
String timestamp = parsePattern.format(nowHere.withZoneSameInstant(ZoneId.of("UTC")));

这对你有用吗?

 类似资料:
  • 我对AWS上的弹性豆茎有点陌生,所以请原谅我,如果这是一个小新手…… 但我们在一个新地区(欧盟)有一个产品实例,我不确定如何绑定特定的git品牌以部署到该环境中?(使用CLI3) 如果在config.yml中设置它是最好的? 非常感谢!

  • 在开展实验之前,我们需要根据不同的平台提前安装相关依赖的软件包,具体需要的软件包如下: Rust 工具链 Rust 版本管理工具:rustup Rust 软件包管理工具:cargo Rust 编译器:rustc 等等 虚拟机软件:QEMU (版本至少支持 RISC-V 64) 具体安装的方法在不同平台上安装方式类似,但也有细微差别,后面会有具体说明。 安装 QEMU 根据不同平台,我们分为下面 3

  • 问题内容: 我有一个毫秒本地本地时间戳,我想将其转换为毫秒本地UTC时间戳。快速浏览一下文档,看起来像这样工作: 有一个更好的方法吗? 问题答案: 使用a 来获取本地纪元处的偏移量,然后将其添加到本地纪元时间戳中。

  • PWA 项目必须部署在 HTTPS 环境上才能够生效,主要是因为 Service Worker 只会在 HTTPS 环境下才能注册成功,我们不用担心在本地开发的时候 Service Worker 是否生效的问题,因为 Service Worker 在 localhost 和 127.0.0.1 的 host 下是能够注册成功的,这样可以确保我们在本地调试工作是能够顺利进行的。我们这里讲述的是如何部

  • 4.5.1. HTTP 服务器 基于 Java 的 HTTP 服务器展现了一种简约、灵活的部署 Jersey 应用程序的方式。HTTP 服务器通常是嵌入在应用程序中,并通过配置,以编程形式来启动。一般来说,Jersey 容器为特定的 HTTP 服务器提供了一个定制化的工厂方法,用来返回一个正确初始化的 HTTP 服务器实例。 4.5.1.1. JDK Http Server 从 Java SE 6

  • 我们有一个web api(.NET 5),可以访问Azure KeyVault中的一些秘密 在local machine for development中,由于我是新创建的vault的所有者,因此我的电子邮件具有访问keyvault的权限。 因此我选择了我的账户-- 我有下面的代码从Keyvault获取机密,并通过配置访问,就像访问appsettings值一样。 我们在服务层和控制器层访问像_co