我有一个spring引导应用程序,它使用以下方法将时间戳解析成我需要的格式
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 - 11 - t09:00:02.237 + 05:30
但是当我将它部署到运行nginx服务器的环境时,上面的方法返回:
2021 - 08 - 11 t09:00:02.237z
现在我的理解是它被转换为UTC格式(+0000/Z)。如果我说错了,请纠正我。但是期望的格式是2021-08-11T09:00:02.237+05:30(忽略+05:30)。我只是想用这个格式来代替Z),我怎么能在环境中实现呢?
ZonedDateTime nowHere = ZonedDateTime.of(ldt, ZoneId.systemDefault());
String timestamp = parsePattern.format(nowHere.withZoneSameInstant(ZoneId.of("UTC")));
这对你有用吗?