Как извлечь дату и время из переменной типа Long в Kotlin на Android - PullRequest
3 голосов
/ 01 мая 2019

Я использую API с веб-сайта USGS.

"properties": {
    "mag": 3.2,
    "place": "Puerto Rico region",
    "time": 1164925597950,
    "updated": 1415323859614,
    "tz": null
}

Время указывается в миллисекундах.Я хочу извлечь дату и время из этих миллисекунд.Как я могу сделать это в Kotlin?

Ответы [ 4 ]

1 голос
/ 01 мая 2019

Начиная с уровня API 26 (Android) или, если JVM является вашей целью, вы можете использовать Java 8 Date API:

val date = Instant
        .ofEpochMilli(1164925597950)
        .atZone(ZoneId.systemDefault()) // change time zone if necessary
        .toLocalDateTime()

val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
println(formatter.format(date)) // 2006-11-30 23:26

Ниже уровня API 26:

val date = Date(1164925597950)

val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm")
println(formatter.format(date)) // 2006-11-30 23:26
1 голос
/ 01 мая 2019
import java.text.SimpleDateFormat
import java.util.Date

fun convertLongToTime (time: Long): String {
    val date = Date(time)
    val format = SimpleDateFormat("dd/M/yyyy hh:mm:ss")
    return format.format(date)
}

Это будет работать в Kotlin, вы можете изменить формат в SimpleDataFormat в соответствии с вашими предпочтениями.

0 голосов
/ 01 мая 2019

Просто передайте ваши миллисекунды в конструктор даты Date(timeinMillis), он вернет дату.

0 голосов
/ 01 мая 2019

Вот способ, которым я использую в Java.Вы просто измените его на kotlin.

SimpleDateFormat formatter = new SimpleDateFormat ("дд / мм / гггг");

String dateString = formatter.format (новая дата (dateInMillis)));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...