Мне нужно преобразовать это время и дату в этот формат отметки времени:
2019/04/22 с 10:04:30 до 2019-02-21T14: 10: 18.161 + 0000
это мой код, он не работает, я что-то пропустил, верно?
String isoDatePattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(isoDatePattern);
Date d = null;
try {
d = simpleDateFormat.parse("2019/04/22 10:04:30");
}
catch (ParseException e) {
e.printStackTrace();
}
String dateString = simpleDateFormat.format(d);
Log.e("dateString ::::> ",dateString);
Вы пытаетесь проанализировать ввод с выходным форматом. Непроверенные:
String isoInputDatePattern = "yyyy/MM/dd HH:mm:ss";
SimpleDateFormat simpleInputDateFormat = new SimpleDateFormat(isoInputDatePattern);
String isoOutputDatePattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
SimpleDateFormat simpleOutputDateFormat = new SimpleDateFormat(isoOutputDatePattern);
Date d = null;
try {
d = simpleInputDateFormat.parse("2019/04/22 10:04:30");
} catch (ParseException e) {
e.printStackTrace();
}
String dateString = simpleOutputDateFormat.format(d);
Log.e("dateString ::::> ",dateString);
Учитывая строку даты, которую вы пытаетесь проанализировать, вам потребуется:
String datePattern = "yyyy/MM/dd HH:mm:ss.SS";
Для шаблона.
Возможно, вам следует рассмотреть возможность использования даты и времени Java 8:
String str = "2019/04/22 10:04:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SS");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
Вам нужно два формата: формат вашей даты, чтобы проанализировать ее, и формат даты, которую вы хотите, чтобы отформатировать ее обратно.