以特定格式转换日期和时间字符串
我正在开发一个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