import java.util.*;
public class Simple
{
public static void main(String[] args)
{
System.out.printf("%tc", new Date());
}
}
错误提示
xception in thread "main" java.lang.Error: Unresolved compilation problem:
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, Date)
at Simple.main(Simple.java:15)
为什么会出现错误呢?我上网查了 我又加上这个包java.util.*;这个包,
后来我发现了用 printf输出有发现一个问题 System.out.printf(String format,object[] agrs);
这样的类型,
后来发现这样也是错的, System.out.printf("hello");
System.out.printf("After year %d,your balance is %,.2f%n",year,balance);
我发现问题出现在printf这个方法
麻烦帮我解答一下
------解决方案--------------------
试试下面的代码:
- Java code
Date date = new Date(); long dataL = date.getTime(); // 格式化年月日 // %t之后用y表示输出日期的年份(2位数的年,如99) // %t之后用m表示输出日期的月份,%t之后用d表示输出日期的日号 System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL); // %t之后用Y表示输出日期的年份(4位数的年), // %t之后用B表示输出日期的月份的完整名, %t之后用b表示输出日期的月份的简称 System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL); // 以下是常见的日期组合 // %t之后用D表示以 "%tm/%td/%ty"格式化日期 System.out.printf("%1$tD%n", date); //%t之后用F表示以"%tY-%tm-%td"格式化日期 System.out.printf("%1$tF%n", date); /*** 输出时间类型***/ // 输出时分秒 // %t之后用H表示输出时间的时(24进制),%t之后用I表示输出时间的时(12进制), // %t之后用M表示输出时间的分,%t之后用S表示输出时间的秒 System.out.printf("%1$tH:%1$tM:%1$tS; %2$tI:%2$tM:%2$tS%n", date, dataL); // %t之后用L表示输出时间的秒中的毫秒 System.out.printf("%1$tH:%1$tM:%1$tS %1$tL%n", date); // %t之后p表示输出时间的上午或下午信息 System.out.printf("%1$tH:%1$tM:%1$tS %1$tL %1$tp%n", date); // 以下是常见的时间组合 // %t之后用R表示以"%tH:%tM"格式化时间 System.out.printf("%1$tR%n", date); // %t之后用T表示以"%tH:%tM:%tS"格式化时间 System.out.printf("%1$tT%n", date); // %t之后用r表示以"%tI:%tM:%tS %Tp"格式化时间 System.out.printf("%1$tr%n", date); /*** 输出星期***/ // %t之后用A表示得到星期几的全称 System.out.printf("%1$tF %1$tA%n", date); // %t之后用a表示得到星期几的简称 System.out.printf("%1$tF %1$ta%n", date); // 输出时间日期的完整信息 System.out.printf("%1$tc%n", date);
------解决方案--------------------
API中是这样要求的public PrintStream printf(String format,
Object... args)
也就是说你传入的new Date()这个参数是不符合要求的,这里需要的是一个对象数组
比如这样传:
- Java code
Integer[] b = new Integer[1]; b[0]=new Integer(2); System.out.printf("b的值为%d",b);
------解决方案--------------------
我运行没问题啊,输出结果:
星期四 七月 28 15:59:19 CST 2011
你用的JDK不会是1.5以前的吧?
------解决方案--------------------
The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, Date)
说明你的jdk 不支持这种写法 估计是jdk版本的问题