回答
使用Time類並分析字符串。然後使用Time toMillis()函數並實例化一個Date。
http://developer.android.com/reference/android/text/format/Time.html#parse3339(java.lang.String)
但是我需要編碼爲2006-06-21T15:57:24.000Z – user878588
見的SimpleDateFormat,http://developer.android.com/reference/java/text/SimpleDateFormat.html
該類將字符串轉換爲日期,並且反之亦然,使用給定的圖案。
使用正確的模式創建SimpleDateFormat後,可以使用它將字符串轉換爲Date,根據需要使用日期,並最終使用相同的SimpleDateFormat實例將Date轉換回String。
編輯:澄清時區
在它不是閹給定的字符串指定的問題是一個「純粹」的ISO 8601日期,而在這種情況下,你是否需要或不支持多個時區,如果那個時區將僅表示爲數字(如RFC 822中的+0200),帶冒號的數字(ISO 8601允許的+02:00)或名稱(EST等)。
如果字符串是純ISO 8601字符串,那麼SimpleDateFormat在解碼時區時會遇到一些問題。但是,如果它是「始終Z」(意味着時區數據沒有意義,並且您可以放心地忽略它),或者使用不帶冒號的數字(如+0200等)或使用時區名稱,則SimpleDateFormat可以正確處理它。
這個下面簡單的代碼:
private Date parseDate(String date) {
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.S'Z'");
Date dateObj = new Date();
try {
dateObj = curFormater.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return dateObj;
}
它產生如下結果:Wed Jun 21 15:57:24 GMT + 00:00 2006但是我需要2006-06-21T15:57:24.000Z – user878588
它也產生相同的輸出Mon Oct 07 04:50:00 PDT 1996 – user878588
ISO 8601
輸入字符串中恰好是標準ISO 8601格式。最後的Z
是Zulu
的縮寫,意思是UTC。
的java.time類解析和生成表示日期時間值字符串時使用ISO 8601種格式默認。
Instant
類代表UTC中的時間軸上的一個時刻,分辨率爲nanoseconds(最多九(9)位小數)。
Instant instant = Instant.parse("2006-06-21T15:57:24.000Z");
要生成標準的ISO 8601格式的字符串,調用toString
。
String output = instant.toString();
2006-06-21T15:57:24Z
字符串=日期 - 時間
不要混爲一談日期時間對象與代表值的String。 date-time對象可以解析一個String,並且可以生成一個String,但不是String。換句話說,一個字符串可以被輸入和/或輸出,但不是日期 - 時間對象本身。
因此,您的問題,「如何將此字符串轉換爲Date對象而不更改此格式」是沒有意義的。
要以ISO 8601以外的格式生成字符串,請將Instant
轉換爲OffsetDateTime
或ZonedDateTime
對象,並使用DateTimeFormatter
類。搜索堆棧溢出DateTimeFormatter
查看更多討論和許多示例。
轉換
應該避免老java.util.Date
類只要有可能。但是,如果您必須與尚未更新爲java.time類型的舊代碼交互,則可以通過添加到舊日期時間類的新方法將其轉換爲java.time。
java.util.Date utilDate = java.util.Date.from(instant);
...並會向另一個方向......
Instant instant = utilDate.toInstant();
- 1. 將字符串日期轉換爲日期對象
- 2. 將日期字符串轉換爲日期時間對象
- 3. 將Android的日期字符串轉換爲日期對象
- 4. 將日期字符串轉換爲日期對象
- 5. 如何將解析日期對象轉換爲字符串?
- 6. 如何將字符串與日期轉換爲Json對象?
- 7. 如何將日期字符串轉換爲不帶時區的日期對象
- 8. 如何將阿拉伯字符串日期轉換爲java 8日期對象?
- 9. 轉換僞日期字符串轉換成JavaScript日期對象
- 10. 將字符串轉換爲日期並將日期轉換回字符串
- 11. 如何將日期時間字符串轉換回datetime對象?
- 12. 從日期時間字符串轉換爲JavaScript日期對象
- 13. Swift Json日期字符串轉換爲日期對象
- 14. 如何日期時間字符串轉換爲DateTime對象
- 15. 將字符串轉換爲日期對象
- 16. 將字符串轉換爲日期時間對象
- 17. 將日期格式化的字符串轉換爲DateTime對象?
- 18. 的Javascript:全月將字符串轉換爲日期對象
- 19. 將自定義字符串格式轉換爲日期對象
- 20. 如何將日期對象從時間戳轉換爲日期而不轉換爲json中的字符串
- 21. 如何將字符串轉換爲日期和日期字符串?
- 22. 將字符串轉換爲json與字符串上的日期對象
- 23. 將字符串轉換爲日期
- 24. 將字符串轉換爲日期php
- 25. 將字符串轉換爲日期
- 26. 將字符串轉換爲IST日期
- 27. 將日期轉換爲字符串
- 28. Swift將字符串轉換爲日期
- 29. 將日期轉換爲字符串
- 30. 將日期轉換爲字符串SQL
一個'Date'不** **有一種格式。如果你想以某種方式格式化,可以使用'DateFormat'對象。順便說一句,這也是*解析**將'String'解析爲'Date'對象的方法。 –
[SimpleDateFormat](http://download.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)是您在Java中需要的。不確定關於Android。 – asgs
如果不更改格式,則無法做到這一點。也許你只是簡單地打印一個'java.util.Date'對象,只會導致顯示'Date#toString()'? (它確實具有不同的固定格式)。然後,您應該先將「Date」轉換爲「String」,以便將其以所需的格式顯示給人類。 – BalusC