LocalDateTime格式为yyyy-MM-dd'T'HH:mm:ss.SSSSSS?

时间:2019-01-15 08:45:49

标签: kotlin timestamp

在我的Kotlin代码中,我这样生成当前日期:

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

结果是:

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

但是我需要格式为 yyyy-MM-dd'T'HH:mm:ss.SSSSSS

的LocalDateTime

所以结果必须是这样的(例如):

2019-01-15T10:43:06.170268

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用解析时所用的相同格式器(例如Why incorrect convert from string to date?中使用的格式器)对其进行格式化。

同样,我建议您使用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表示,在这种情况下是从{{ 3}}。在大多数情况下,出于调试/记录的目的,这可能很好,但对于其他任何事情,可能都不是一件好事。因此,您不应该依赖toString()