我尝试使用printf
,但我遇到了意外错误。
此代码的错误是什么:
System.out.printf("The date is %d/%d/%d", month,day,year);
我想打印日期,month
,day
和year
是双变量。
答案 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);