给定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()));

10-08 18:36