各位大佬:
時間使用jackson的@JsonFormat進行格式化:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date beginTime;
由于GMT+8這種常量不利于國際化。
我的方法:
1 使用默認時區
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "HH:mm",timezone = JsonFormat.DEFAULT_TIMEZONE)
private Date timeQuantumBegin;
2 配置objectMapper
@Autowired
public void configureJackson(ObjectMapper objectMapper) {
objectMapper.setTimeZone(TimeZone.getDefault());
}
但是效果還是達不到,差了八個小時。請問怎么指定timezone為系統時區?
uj5u.com熱心網友回復:
哪位大佬有辦法嗎?uj5u.com熱心網友回復:
你和系統時區比較過嗎?系統時區的設定是什么?可能已經和系統時區同步了uj5u.com熱心網友回復:
@Configurationpublic class JacksonObjectMapperConfig {
@Bean
public ObjectMapper createObjectMapper() {
ObjectMapper objectMapper = new Log4jJsonObjectMapper();
//更改ObjectMapper的時區GMT->default:shanghai
objectMapper.setTimeZone(TimeZone.getDefault());
}
}
uj5u.com熱心網友回復:
有意思,樓主干嘛要干預 Json 的轉換程序呢?你看一下,如果你不添加JsonFormat,轉換的結果是個啥。里面應該是帶有時區的時間字串,也就是說,默認支持國際化的。
你在看看你添加格式轉換之后的結果是個啥。只是一個東八區的時間,關鍵是,轉換后的字串里面,沒有東八區這個資訊。
你要是想做國際化,那么,可以使用 UTC時間格式(2018-01-22T09:12:43.083Z)這個時間,和北京時間差了八小時,不過,沒啥關系,系統會根據Locale TimeZone 自動轉換回來的。
uj5u.com熱心網友回復:
哦。我看了一下,如果不指定 JsonFormat ,應該是一個 UTC 的長整數,不是字串,但是,這個長整數,是支持國際化的。這個長整數的值,轉成字串的話,就是(2018-01-22T09:12:43.083Z)這個形式的。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47775.html
標籤:Web 開發
上一篇:資料庫自定義排序怎么實作
