LocalDateTime в формате гггг-мм-дд'тхх: мм: сс.сссссс? - PullRequest
0 голосов
/ 15 января 2019

В моем коде Kotlin я генерирую текущую дату следующим образом:

val dtTimeStamp = LocalDateTime.now()
logger.info("dtTimeStamp = " + dtTimeStamp)

Результат:

dtTimeStamp = 2019-01-15T10:43:06.777

Но мне нужно LocalDateTime в формате гггг-мм-дд'тчч: мм: сс.сссссс

Таким образом, результат должен выглядеть следующим образом (например,):

2019-01-15T10:43:06.170268

Как я могу это сделать?

1 Ответ

0 голосов
/ 15 января 2019

Вы можете отформатировать его с тем же форматером, который вы использовали для его анализа (например, тот, который вы использовали в Почему неправильно преобразовывать строку в дату? ).

Снова я рекомендую использовать java.time (вы даже используете LocalDateTime, так что все будет в порядке; -)):

val TS_DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
val formatter = DateTimeFormatter.ofPattern(TS_DATE_PATTERN)

// formatting:
tsDate.format(formatter)
// or:
formatter.format(tsDate)
// or if you rather prefer it:
tsDate.let(formatter::format)

Все 3 варианта возвращают отформатированный String в форме: yyyy-MM-dd'T'HH:mm:ss.SSSSSS (например, 2019-01-14T22:44:20.765123), где tsDate будет получено через:

// parsing:
val tsDate = LocalDateTime.from(formatter.parse("2019-01-14T22:44:20.765123"))

Обратите внимание, что если вы используете объект во время печати / регистрации или просто ссылаетесь на него в String, он будет использовать toString(), чтобы получить представление String, в данном случае от LocalDateTime.toString(). Это, вероятно, хорошо в большинстве случаев для целей отладки / ведения журнала, но может не подходить ни для чего другого. Так что не стоит полагаться на toString().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...