我在時區更改器上遇到了麻煩。我使用代碼時區更改器JAVA
for (int i = 0; i < data.size(); i++) {
try {
String time = (String) data.get(i).get("time_utc_8");
time = time.replace('+', '-');
String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
TimeZone tz = TimeZone.getTimeZone("UTC+8");
sdf.setTimeZone(tz);
Date dateTime = sdf.parse(time);
String pattern_2 = "yyyy-MM-dd HH:mm:ss.SSSSSS";
SimpleDateFormat sdf_2 = new SimpleDateFormat(pattern_2);
String d = sdf_2.format(dateTime);
data.get(i).put("time_utc_8", d);
// System.out.println(data.get(i).get("time"));
} catch (JSONException e) {
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
解析和更改時區。
這是我的例子輸入:
2016-06-26T16:32:31.654120 + 00:00
而我得到的輸出:
2016-06 -27 00:43:25.000120
但是正確的輸出必須是:
2016年6月27日00:32:31.654120
我怎樣才能解決這個問題呢?
我不能更強烈反對使用傳統的'java.util.Date'。您應該在'java.time'包中查找適合您需求的最合適的類。 –
@JoeC因此,問題是'java.util.Date'? –
@ Zi-yanTseng'java.util.Date'已經過時,並且有大量的錯誤:https://stackoverflow.com/questions/1969442/whats-wrong-with-java-date-time-api - 它被替換通過新的API,我展示瞭如何在我的回答中使用 –