Разбор SimpleDateFormat не работает с датой в формате UTC из базы данных. - PullRequest
0 голосов
/ 03 декабря 2018

Я использую Parse.com, и у каждого ParseObject есть столбец даты с типом даты в формате UTC.

Я хочу отсортировать те объекты, которые я получаю из запроса по дате.Поэтому я использую SimpleDateFormat и Comparator для сравнения дат, но выдает это исключение:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766) 
     Caused by: java.text.ParseException: Unparseable date: "Thu Dec 06 16:20:00 GMT+01:00 2018" (at offset 0)

Код:

private fun formatQueryData(unsortedList: ArrayList<ParseObject>){
        unsortedList.sortWith(object : Comparator<ParseObject>{
            var f = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'")
            override fun compare(o1: ParseObject, o2: ParseObject): Int {
                try {
                    return f.parse(o1.getDate("date").toString()).compareTo(f.parse(o2.getDate("date).toString()))
                } catch (e: ParseException) {
                    throw IllegalArgumentException(e)
                }
            }
        })
    }
...