Вставка даты в базу данных комнаты - PullRequest
0 голосов
/ 13 октября 2019

Я хочу получить текущую дату в формате, подобном ГГГГ-ММ-ДД , чтобы я мог сохранять в базе данных, а затем читать из базы данных и работать с датой, как разница между датами и т. Д.

Я пытался использовать экземпляр календаря для получения текущей даты.

val calender=Calendar.getInstance()
val date=DateFormat.getDateInstance().format(calender.time)

Но экземпляр календаря возвращает данные типа календаря, и я хочу получить тип даты (поскольку у меня есть преобразователь типов для датытип данных)

typeconverter

class Converters {
@TypeConverter
fun fromTimestamp(value: Long?): Date? {
    return value?.let { Date(it) }
}

@TypeConverter
fun dateToTimestamp(date: Date?): Long? {
    return date?.time?.toLong()
 }
}

1 Ответ

0 голосов
/ 13 октября 2019

Если вам нужна дата в формате ГГГГ-ММ-ДД , то вам не нужен экземпляр Calendar или Date.

Просто используйте SimpleDateFormat, как это:

class Converters {

    @TypeConverter
    fun fromTimestamp(timeStamp: Long?): String? {
        return timeStamp?.let { FORMATTER.format(timeStamp) }
    }

    @TypeConverter
    fun dateToTimestamp(timeStamp: String?): Long? {
        return timeStamp?.let { FORMATTER.parse(it)?.time }
    }

    companion object{

        val FORMATTER = SimpleDateFormat("yyy-MM-dd")
    }
}

, но если вам нужны экземпляры календаря по какой-либо причине, это может быть удобно (хотя я бы посоветовал вам использовать метод, основанный на метках времени / выше)>

class Converters {

    @TypeConverter
    fun fromTimestamp(value: Long?): Calendar? {
        return value?.let { Calendar.getInstance().apply { timeInMillis = it } }
    }

    @TypeConverter
    fun dateToTimestamp(calendar: Calendar?): Long? {
        return calendar?.timeInMillis
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...