Как преобразовать время в миллисекунды в kotlin?

В Kotlin есть несколько способов преобразовать время в миллисекунды. Один из них - использование класса Calendar.

import java.util.Calendar

fun main() {
    val calendar = Calendar.getInstance()
    
    // Установка времени в calendar
    calendar.set(Calendar.HOUR_OF_DAY, 10)
    calendar.set(Calendar.MINUTE, 30)
    calendar.set(Calendar.SECOND, 0)
    calendar.set(Calendar.MILLISECOND, 0)
    
    // Получение времени в миллисекундах
    val timeInMillis = calendar.timeInMillis
    
    println("Время в миллисекундах: $timeInMillis")
}

В этом коде мы сначала создаем экземпляр Calendar с помощью Calendar.getInstance(). Затем мы устанавливаем желаемое время с помощью методов set(). В данном случае мы устанавливаем часы на 10, минуты на 30, секунды на 0 и миллисекунды на 0.

После этого мы можем получить время в миллисекундах с помощью метода timeInMillis.

Альтернативный способ - использование LocalDateTime из пакета java.time.

import java.time.LocalDateTime
import java.time.ZoneOffset

fun main() {
    val localDateTime = LocalDateTime.of(2021, 9, 15, 10, 30)
    val timeInMillis = localDateTime.toInstant(ZoneOffset.UTC).toEpochMilli()
    
    println("Время в миллисекундах: $timeInMillis")
}

Здесь мы создаем экземпляр LocalDateTime с помощью метода of(), указывая год, месяц, день, час и минуту. Затем мы преобразуем LocalDateTime в Instant с помощью метода toInstant(), указывая смещение часового пояса (ZoneOffset.UTC). Наконец, мы преобразуем Instant в миллисекунды, вызывая метод toEpochMilli().

Оба эти способа преобразуют время в миллисекунды, но используют разные API. Выбор зависит от ваших предпочтений и требований проекта.