Я анализирую дату в формате dd-MM-yyyy
и возвращаюсь в секундах (делив ее на 1000).Проблема возникает, когда я конвертирую его в Unix Time Stamp, потому что он конвертирует эти секунды в предыдущий день.Я объясню своим кодом и примером:
private fun String.toTimestamp(): String {
val dateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault())
return (dateFormat.parse(this).time / 1000).toString
}
Если дата 01/02/2019
(2 февраля 2019 г.), этот метод возвращает 1548975600
.Если вы конвертируете его в дату (я использую эту страницу), она возвращает 01/31/2019 @ 11:00pm (UTC)
.Я попытался добавить часы, минуты и секунды, даже добавив часовой пояс, но он всегда возвращает день назад.
Другой пример: 13-02-2019
> 1550012400
> 02/12/2019 @ 11:00pm (UTC)
Дата взята из DatePicker
, но если я создаю ее следующим образом, она возвращает правильный день:
(Date().time / 1000).toString()
Я пробовал с языком системы на испанском и английском языках и менялLocale
до Locale.ENGLISH
и Locale("es", "ES")
и результаты совпадают.
Есть предложения?