Преобразование строк даты и времени в дату в определенном формате
Я работаю над приложением для 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
1 ответ
java.time
Вы используете проблемные старые классы даты и времени, которые теперь унаследованы. Избежать их. Теперь вытеснены классами 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 см. Проекты ThreeTen- Backport и ThreeTenABP.