如何使用System.out.printf

时间:2012-12-23 03:50:39

标签: java

我尝试使用printf,但我遇到了意外错误。

此代码的错误是什么:

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

我想打印日期,monthdayyear是双变量。

3 个答案:

答案 0 :(得分:15)

根据Formatter docs%d是积分值的转换,不适用于双打。你会想要将它们转换为整数。无论如何,为什么你将月,日和年表示为浮点数?您最好使用Date并使用appropriate formatter作为日期值。

如果必须对这些值使用双打,则需要%f而不是%d

答案 1 :(得分: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"

答案 2 :(得分:-2)

更正后的代码

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