给定FileTime fileTime
,如何以自定义方式将其格式化为字符串?String s = fileTime.toString()
仅以ISO格式提供它。
String s = DateTimeFormatter.ofPattern("uuuu-MMM-dd HH:mm:ss")
.format(fileTime.toInstant());
抛出
UnsupportedTemporalTypeException: Unsupported field: Year
最佳答案
您不能使用查询年份的DateTimeFormatter
实例格式化Instant格式。Instant
代表时间线上的单个点。这就是为什么不可能对“什么是年/日/时?”这个问题给出正确/唯一的答案的原因。这取决于在世界上哪个地方问这个问题:在纽约,它不同于悉尼。
但是您的DateTimeFormatter恰恰在问这个问题。这就是为什么您得到UnsupportedTemporalTypeException
的原因。
您必须至少将Instance
转换为LocalDateTime
:
System.out.println(timestampFormatter.format(
LocalDateTime.ofInstant(fileTime.toInstant(), ZoneId.systemDefault()));