Как я могу извлечь дату и время из переменной типа Long в Kotlin на Android

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

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

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

3
0
1 344
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

Средство форматирования SimpleDateFormat = new SimpleDateFormat ("дд/мм/гггг");

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

Ответ принят как подходящий
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, вы можете изменить формат в SimpleDateFormat в соответствии с тем, как вы хотите.

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

Начиная с уровня 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

Другие вопросы по теме