1
Web服務返回給我這樣的格式/日期(1418346257000 + 0700)/。我如何將它轉換爲Date對象。謝謝!Android如何將這種格式(/日期(1418346257000 + 0700)/)轉換爲日期對象
Web服務返回給我這樣的格式/日期(1418346257000 + 0700)/。我如何將它轉換爲Date對象。謝謝!Android如何將這種格式(/日期(1418346257000 + 0700)/)轉換爲日期對象
嘗試......
public static Date setDate(String date) {
String results = date.replaceAll("^/Date\\(", "");
String millisecond = results.substring(0, results.indexOf('+'));
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(Long.parseLong(millisecond));
String timezone = results.substring(results.indexOf('+'), results.indexOf(')'));
int hours = Integer.parseInt(timezone.substring(1, 3));
int minutes = Integer.parseInt(timezone.substring(3));
if (timezone.charAt(0) == '+') {
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + hours);
calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) + minutes);
} else {
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - hours);
calendar.set(Calendar.MINUTE, calendar.get(Calendar.MINUTE) - minutes);
}
return new Date(calendar.getTimeInMillis());
}
使用方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String date = setDate("/Date(928129800000+0530)/");
Toast.makeText(MainActivity.this, "DATE: " + date, Toast.LENGTH_SHORT)
.show();
}
快樂編碼...
我感到驚訝,這只不過是一個長的數字。謝謝! – 2014-12-16 04:03:30
你只能轉換毫秒部分,你也應該使用時區來計算時間 – 2016-05-11 09:49:09