2017-12-18 307 views
0

我正在開發一個Android應用程序。以特定格式轉換日期和時間字符串

我從JSON文件中得到日期字符串和時間字符串。

fecha_reporte = "2017-12-17" 

hora_reporte = "23:51:00" 

我需要將兩個字符串轉換爲日期變量,然後我需要對它進行一些計算。

這是我到目前爲止有:

String fecha = fecha_reporte + " " + hora_reporte; 

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd H:m:s"); 
String dateInString = fecha; 

try { 

    Date date2 = formatter.parse(dateInString); 
    System.out.println(date2); 
    System.out.println(formatter.format(date2)); 
    Log.d("DURACION","DURACION REPORTE: calculado: "+date2); 

} catch (ParseException e) { 
    e.printStackTrace(); 
} 

輸出是一個日期,但這種格式:

Sun Dec 17 23:51:00 GMT-07:00 2017 

我需要它有以下格式:2017-12-17 23:51:00

+0

可能重複的[Android,我如何將字符串轉換爲日期?](https://stackoverflow.com/questions/8573250/android-how-can-i-convert-string-to-date) –

+1

指這個https://stackoverflow.com/a/40176777/1848157 – Radhey

+2

你需要改變SimpleDateFormat內的格式。 – Radhey

回答

2

的java時間

您正在使用現在已經存在的麻煩的舊日期時間類。避免它們。現在由java.time類取代。

解析輸入字符串爲LocalDateTime,因爲它們缺少關於時區或與UTC的偏移量的信息。

添加T以符合標準ISO 8601格式。

String input = "2017-12-17" + "T" + "23:51:00" ; 
LocalDateTime ldt = LocalDateTime.parse(input) ; 

通過調用toString生成你想要的格式字符串,並以與中間有空格替換T

ldt.toString().replace("T" , " ") ; 

或者,使用DateTimeFormatter類以自定義格式生成字符串。

對於較早的Android,請參閱三天 - 後臺端口ThreeTenABP項目。

+0

謝謝你,我會考慮這個和未來的項目。 – mvasco

相關問題