9

我尝试使用printf,但出现意外错误。

这段代码有什么问题:

System.out.printf("The date is %d/%d/%d", month,day,year);

我想打印日期和month,dayyear是双变量。

4

3 回答 3

15

根据Formatter docs%d是整数值的转换,它不适用于双精度数。您需要将它们转换为整数。无论如何,为什么要将月、日和年表示为浮点数?最好使用 aDate并为日期值使用适当的格式化程序。

如果您必须对这些值使用双精度,您将需要%f而不是%d.

于 2012-12-23T03:53:31.280 回答
0

像 C 的 sprintf 一样,可以使用静态方法格式化字符串String.format

   // Format a string containing a date.
   import java.util.Calendar;
   import java.util.GregorianCalendar;
   import static java.util.Calendar.*;

   Calendar c = new GregorianCalendar(1995, MAY, 23);
   String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
   // -> s == "Duke's Birthday: May 23, 1995"
于 2013-06-15T19:17:29.140 回答
-2

更正的代码

 System.out.printf("The date is %f/%f/%f", month,day,year);
于 2012-12-23T04:27:35.943 回答