4

有什么问题

public String toString() {
    return super.toString()
            + String.format(" %1$F-%2$F", startDate, endDate);
}

我明白了

原因:java.util.Formatter$FormatSpecifier.(Formatter.java:2634) 处 java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2606) 处的 java.util.UnknownFormatConversionException: Conversion = 'F'。 util.Formatter.parse(Formatter.java:2480) 在 java.util.Formatter.format(Formatter.java:2414) 在 java.util.Formatter.format(Formatter.java:2367) 在 java.lang.String.format (字符串.java:2769)

我想打印定义的 ISO 8601 日期java.util.Formatter

4

1 回答 1

9

我认为日期格式模式需要一个前缀:

't', 'T'    date/time   Prefix for date and time conversion characters. See Date/Time Conversions. 

修饰符的示例F也显示了以下语法:

'F'     ISO 8601 complete date formatted as "%tY-%tm-%td". 

所以下面的模式应该有效:

String.format(" %1$tF-%2$tF", startDate, endDate);
于 2012-10-11T09:58:01.020 回答