是否可以构建=
以使以下内容相同?
c.custom =
当您的文本输入使用epoch millis时,必须使用特殊情况似乎很遗憾。
答案 0 :(得分:5)
如果您知道您的日期是合理的近期(自纪元以来的秒数超过1),您可以使用此格式化程序:
new DateTimeFormatterBuilder()
.appendValue(ChronoField.INSTANT_SECONDS, 1, 19, SignStyle.NEVER)
.appendValue(ChronoField.MILLI_OF_SECOND, 3)
.toFormatter();
否则,它有点棘手,你最好直接解析long值:
Instant instant = Instant.ofEpochMilli(Long.parseLong(millisString))
System.out.println(instant.toEpochMilli());
答案 1 :(得分:0)
不确定为什么要将DateTimeFormatter
用于仅包含毫秒的字符串。
使用毫秒来处理Instant
Instant now = Instant.ofEpochMilli(System.currentTimeMillis());
String nowString = String.valueOf(now.toEpochMilli());
System.out.println(now.equals(Instant.ofEpochMilli(Long.valueOf(nowString)))); // true
要使用DateTimeFormatter
,请拨打.toString()
和.parse(String)
使用预定义的<{1}}
Instant now = Instant.ofEpochMilli(System.currentTimeMillis());
String nowString = now.toString();
System.out.println(now.equals(Instant.parse(nowString))); // true