以特定格式转换日期和时间字符串

我正在开发一个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

回答:

的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项目。

以上是 以特定格式转换日期和时间字符串 的全部内容, 来源链接: utcz.com/qa/261642.html

回到顶部