java - 使用 java 中的 Formatter 类格式化日期和时间

标签 java java-time formatter localdate

我遇到了一个问题,我知道我们可以使用SimpleDateFormat类或java中的其他格式类来格式化日期/时间。但我正在尝试使用 Formatter 类方法 format 格式化时间和日期。那可能吗?如果是,那怎么可能?

LocalDate date = LocalDate.now();
Formatter formatter = new Formatter();
formatter.format("%tm/%td/%ty", date);
System.out.println(formatter);

我得到java.util.MissingFormatArgumentException:格式说明符“%td”

最佳答案

您有三 (3) 个格式说明符( %tm%td%ty ),因此 format()除了格式字符串之外,还立即需要三个参数。你只给了一个。

解决方案是重复相同的论点。有两种方法可以告诉format()再次使用相同的参数。

一种方法,给出显式参数索引,从 1 开始:

formatter.format("%1$tm/%1$td/%1$ty", date);

输出:

09/10/21

换句话说,一个<告诉format()再次使用相同的参数:

formatter.format("%tm/%<td/%<ty", date);

输出是相同的。

关于java - 使用 java 中的 Formatter 类格式化日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69126787/

相关文章:

java - Apache POI Excel - 如何配置要扩展的列?

java - 在java中读取.csv文件: missing few rows

clojure - 如何使用 #inst Date 文字中的 clojure.java-time 获取 java.time DateTime?

java - JFormattedTextField 具有初始值,可以逐个符号覆盖

java - hibernate 条件 : Joining table without a mapped association

java - JPA 对 Java 8 新日期和时间 API 的支持

java - 从日历周到 java.time.ZonedDateTime

javascript - 渲染图表后,从图表对象更改 Highcharts 工具提示格式化程序

java - 我无法在 Java 中正确地乘以数组