Date轉LocalDate時,調用toInstant()報UnsupportedOperationException異常。
https://www.jianshu.com/p/11d8ed48f7a9spring
MediaType.TEXT_PLAIN 使用的不是 utf-8
Charset.defaultCharset()
你相信系統,想利用系統字符集, 但系統字符集並不統一。咱們在給本身找事。 咱們花精力理解去理解它更沒有意義。數據庫
無用的學習成本。
好比 logback-spring.xml 裏能夠使用的變量,學習這些變量, 對編程自己沒有意義。當換一個組件, 或大版本升級, 這些知識就都廢了。編程
時間及時區
全部時間的字符串表示, 都定義爲: 北京時間, 如: 2018-10-17 09:00:00 , 就是北京的上班時間。學習
如: 客戶端提交的時間, 數據庫保存的時間。無論是 Date , LocalDateTime , 都表示北京時間。orm
之因此混亂是由於多套標準,而且標準混亂。:xml
- 系統定義的標準: 以UTC時間爲準, 世界任何一個地方, 同一時間獲取的時間, 毫秒數相同, 但由於定義的時區不一樣,因此顯示的時間值不一樣。
但 時間類型 不是Java 的標準數據類型, 在拿到 Data 或 LocalDateTime 時, 這裏面是沒有時區的,只有毫秒數。
因此這時候 , Format 字符串的時候,就會出現問題。
- 本地化系統標準:須要本地時間表示,如上,當系統在傳遞 2018-10-17 09:00:00 時, 表示的是當地北京時間9點。
- Date.getYear 我覺得會1970年會返回 1970, 其實返回 0。
- Date.getMonth 我覺得1月會返回1 , 其實返回0。
解決的方式:
不以毫秒數爲準。 以 年月日時分秒爲準。即 以字符串表示爲準。 表示當地時間。utf-8
- 字符串轉時間時,按北京時間轉換。
- 時間類型轉換時,以 年月日時分秒 數據轉換。