2
我查看了所有可能的答案,但我很難找出這個問題。Json日期到Java日期並返回Json日期
我有一個字符串中的Json日期。我想轉換成Java日期而不會浪費時間。
另外我想從Java日期轉換爲Json日期字符串。
在這裏,我有。
String jsonDateString = "/Date(1295157600000-0600)/";
我查看了所有可能的答案,但我很難找出這個問題。Json日期到Java日期並返回Json日期
我有一個字符串中的Json日期。我想轉換成Java日期而不會浪費時間。
另外我想從Java日期轉換爲Json日期字符串。
在這裏,我有。
String jsonDateString = "/Date(1295157600000-0600)/";
您的時間有兩部分:當地時間以毫秒爲單位,以小時和分鐘爲單位的偏移量。你必須解析它們並「添加」它們以獲得毫秒UTC。
可以使用此功能做到這一點:
private static Pattern p = Pattern.compile("\\((\\d+)([+-]\\d{2})(\\d{2})\\)");
public static Date jd2d(String jsonDateString) {
Matcher m = p.matcher(jsonDateString);
if (m.find()) {
long millis = Long.parseLong(m.group(1));
long offsetHours = Long.parseLong(m.group(2));
long offsetMinutes = Long.parseLong(m.group(3));
if (offsetHours<0) offsetMinutes *= -1;
return new Date(
millis
+ offsetHours*60l*60l*1000l
+ offsetMinutes*60l*1000l
);
}
return null;
}
使「退回」的JSON日期,我只想編碼UTC時間:
String jsonDate = "/Date("+date.getTime()+"+0000)/";
你嘗試與樣本串? –
不知道'-0600'?這是偏移量,這是不幸被稱爲「JSON日期」的完美接受部分。哦,我討厭這個詞!爲什麼會出現這種可怕的格式? ISO 8601出了什麼問題,或者只是簡單的毫秒! [哦,你好! OH MY EYES !!](http://bit.ly/AgRj3r) –
謝謝大家。通過使用dystroy的建議,我可以轉換爲Long。我的問題應該更清楚。這是從WCF REST服務獲得的json日期。另外我查看了日期的「-0600」,它是時區偏移量。由於我正在使用dystroy的解決方案,有沒有辦法讓我可以保留時區信息呢? –