我得到了日期格式yyyy-MM-dd'T'hh:mm:ss.SSS'Z'
的問題,總是當我解析某個日期的時間設置爲12:00:00.000
。日期格式和小時始終是12:00:00.000
這是我的日期格式化器:
DateFormat xmlDateFormatWithMs = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'Z'");
我得到了日期格式yyyy-MM-dd'T'hh:mm:ss.SSS'Z'
的問題,總是當我解析某個日期的時間設置爲12:00:00.000
。日期格式和小時始終是12:00:00.000
這是我的日期格式化器:
DateFormat xmlDateFormatWithMs = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSS'Z'");
你似乎需要24小時小時格式。您需要:
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
用資本HH
來指定您需要24小時制。
Instant.parse("2016-09-27T18:33:39Z")
詳細
另一個解決方案是,因爲它們是出了名的麻煩,以避免使用舊SimoleDateFormat和java.util.Date類。
直接通過您的ISO 8601兼容字符串喬達時間:
DateTime dateTime = new DateTime(myString);
或者,最好在java.time。 Joda-Time項目現在處於維護模式,並建議遷移到java.time。
Instant
類表示UTC中時間軸上的一個時刻,分辨率爲nanoseconds。這意味着最多九(9)位小數部分。
Instant instant = Instant.parse("2016-09-27T18:33:39Z");
要調整到其他偏移或時區,搜索棧溢出了OffsetDateTime
和ZonedDateTime
類。
的java.time框架是建立在Java 8和更高版本。這些類取代的麻煩舊日期,時間類,如java.util.Date
,.Calendar
,& java.text.SimpleDateFormat
。
Joda-Time項目現在位於maintenance mode,建議遷移到java.time。請參閱Oracle Tutorial。並搜索堆棧溢出了很多例子和解釋。
大部分的java.time功能後移植到Java 6 和ThreeTenABP還適於Android(見How to use…)。
ThreeTen-Extra項目擴展java.time與其他類。這個項目是未來可能增加java.time的一個試驗場。
你解析的字符串是什麼? –
嗯看來,這取決於HH格式,因爲Ludo6431表示 – PDS