在@jsonformat 中设置 timezone = "Asia/Kolkata" 并将其存储在 java.sql.timestamp 中将 12 pm 转换为 1 pm timesatmp 到 00 am in spring hibernate

Setting timezone = "Asia/Kolkata" in @jsonformat and storing it in java.sql.timestamp converts 12 pm to 1 pm timesatmp to 00 am in spring hibernate

我正在使用

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss", timezone = "Asia/Kolkata")
private Timestamp startDateTime;

存储时间戳以字符串形式出现在 json 中。 但问题是它将中午 12 点到下午 1 点之间的时间转换为凌晨 00 点。 例如。 2021-10-25 12:30:00 转换为 2021-10-25 00:30:00。 任何帮助将不胜感激。 谢谢。

问题的根本原因是您使用了h而不是H。请注意,h 用于 12 小时时间格式(即带有 AM/PM 标记的时间),而 H 用于 24 小时时间格式。因此,您的问题的解决方案是将格式更改为 dd-MM-yyyy HH:mm:ss.

如果您想要时间中的 AM/PM 标记,请将格式更改为 dd-MM-yyyy hh:mm:ss a