Строки даты и времени, такие как «2018-04-01 10:00:00», могут использоваться для создания объектов Date с этим кодом Котлина:
val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val d : Date = format.parse("2018-04-01 10:00:00") // works fine
Но как проанализировать строки даты и времени с такими смещениями, какэти:
2018-04-01 10:00:00+02 // GMT + 2 hours
2018-04-01 10:00:00+02:30 // GMT + 2 hours, 30 minutes
2018-04-01 10:00:00+0230 // GMT + 2 hours, 30 minutes
Java 8: Instant не вариант.
edit:
Я попробовал предложение и использовал 'x', 'X','z' и 'Z', 'XXX' с пробелом и без него.Компилирует нормально.X-версии аварийно завершают работу при создании экземпляра SimpleDateFormat - кажется, не поддерживается на используемом уровне API Android:
// java.lang.IllegalArgumentException: Unknown pattern character 'X'
var formatter3 = SimpleDateFormat("yyyy-MM-dd HH:mm:ssX")
// java.lang.IllegalArgumentException: Unknown pattern character 'x'
var formatter4 = SimpleDateFormat("yyyy-MM-dd HH:mm:ssx")
// java.lang.IllegalArgumentException: Unknown pattern character 'x'
var formatter5 = SimpleDateFormat("yyyy-MM-dd HH:mm:ss x")
z-версии:
val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ")
or
val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ssz")
val date = formatter.parse("2018-04-24 17:33:02+02")
, кажется, работает.
@ Андреас: Разбор даты и времени - это боль в заднице.Вместо отрицательного ответа на вопрос, простая строка кода была бы более полезной