關於前端時間控件傳值到后端java的問題


今早被這個問題搞了幾小時,最后還是慢慢的解決了。

 

 

一開始我從前端拿到的時間值是  

1969-12-31T18:00:00.000Z  

T代表是分隔符,Z代表是UTC 通用標准時,以z來標識。 

一開始我直接用  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

sdf.parse(date);   會報錯,錯誤bug如下    Unparseable date " 1969-12-31T18:00:00.000Z"

 

一開始以為是時間精度的問題,因為我前端取的是   時和分 (值是  例如   10:00)

然后我發現,雖然我取得值是   10:00   ,不過控件取值的時候,也默認把年月秒給取回來了。

 

不過格式就是  1969-12-31T18:00:00.000Z  帶Z的,后端轉換很多次,都出錯了。不得己把這個時間格式復制百度,有了如下答案:

String date = "2016-08-15T16:00:00.000Z";
date = date.replace("Z", " UTC"); //注意是   空格+UTC
System.out.println(date);

SimpleDateFormat sdf = new SimpleDateFormat(
				"yyyy-MM-dd'T'HH:mm:ss.SSS Z");  //java  Date  類型格式

Date d = sdf .parse(date);

System.out.println(d);

輸出:
2016-08-15T16:00:00.000 UTC
Tue Aug 16 00:00:00 CST 2016

  代碼是網上復制的,這也防止以后忘記了,方便我查閱。

最后的總結:SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 給的參數長度和格式一定要跟"yyyy/MM/dd"一致,不然會報錯   Unparseable date   的錯誤!!

 

取的一部分原創地址

https://www.cnblogs.com/yanglf/p/5775224.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM