在我的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
我该怎么做?
答案 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()
。