Почему ошибка Unparseable date произошла в Android? - PullRequest
1 голос
/ 14 октября 2019

Я пытаюсь преобразовать строку в Date следующим образом:

val inputFormat = SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss", Locale.getDefault())
val s = "Mon, 14 Oct 2019 07:10:28"
val time = inputFormat.parse(s)
Log.d("HttpTools", "time server:$time")

Но она показывает ошибку

java.text.ParseException: Unparseable date: "Mon, 14 Oct 2019 07:10:28"

Я что-то пропустил? Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 16 октября 2019

Если вы используете Java-8, вы можете использовать LocalDateTime и DateTimeFormatter

String text = "Mon, 14 Oct 2019 07:10:28";

DateTimeFormatter format = DateTimeFormatter.ofPattern("EEE, dd MMM yyyy HH:mm:ss", Locale.getDefault());

LocalDateTime dateTime = LocalDateTime.parse(text, format);

System.out.println(dateTime);    // 2019-10-14T07:10:28
1 голос
/ 14 октября 2019

Неправильный формат.

Согласно документации ваш формат должен быть

EEE, dd MMM yyyy HH:mm:ss

Обратите внимание:

  • DDD становится EEE, так как вам нужно трехбуквенное название дня

  • hh становится HH, так как вам нужен дневной час (0-23). hh будет работать только если вы используете am/pm

1 голос
/ 14 октября 2019

Используйте этот формат: EEE, dd MMM yyyy hh:mm:ss

0 голосов
/ 14 октября 2019

Вы должны использовать этот формат, чтобы получить день

EEE, dd MMM yyyy HH:mm:ss
...