изменение даты и времени в строковом формате только на данные в строковом формате - PullRequest
0 голосов
/ 26 мая 2020

Я получаю данные в строковом формате, например:

"2018-08-31T00:00:00Z"

, и я хочу изменить его только на дату без времени:

"2018-08-31"

что было бы правильным способом сделать это?

я должен просто удалить то, что стоит после T в строке, или проанализировать это в DateTime и добавить формат (но тогда мне придется измените на строку снова)

как бы вы go об этом?

думали примерно так:

val myDate = "2018-08-31T00:00:00Z"

val res = myDate.substring(0, myDate.indexOf("T"))

1 Ответ

2 голосов
/ 26 мая 2020

Как правило, лучше всего хранить данные в максимально конкретном формате c и конвертировать только тогда, когда это необходимо для отображения или интеграции. Поэтому в этом случае лучше всего сохранить значение как java.time.OffsetDateTime - Z в исходном значении, вероятно, указывает на смещение по Гринвичу или +0. И только тогда, когда вам нужно преобразовать его в String с помощью метода format(DateTimeFormatter). Вы можете преобразовать исходное значение в OffsetDateTime с помощью этого

OffsetDateTime osdt = 
    OffsetDateTime.parse("2018-08-31T00:00:00Z",
       DateTimeFormatter.ISO_DATE_TIME);

String output = osdt.format(DateTimeFormatter.ISO_LOCAL_DATE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...