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这个方法  
麻烦帮我解答一下
  

解决方案 »

  1.   

    试试下面的代码: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);
      

  2.   

    API中是这样要求的public PrintStream printf(String format,
                              Object... args)
    也就是说你传入的new Date()这个参数是不符合要求的,这里需要的是一个对象数组比如这样传: Integer[] b = new Integer[1];
    b[0]=new Integer(2); System.out.printf("b的值为%d",b);
      

  3.   

    我运行没问题啊,输出结果:星期四 七月 28 15:59:19 CST 2011你用的JDK不会是1.5以前的吧?
      

  4.   

    The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, Date)说明你的jdk 不支持这种写法 估计是jdk版本的问题
      

  5.   

    麻烦问一下,我现在重新安装的jdk1.6     我现在用  命令提示符验证一下
    配置  变量的时候       javac Hello.java    这个可以成功的产生    Hello.class
      
    但是当我输入      java Hello      结果在屏幕(命令窗口)                            不是“ Hello  World ”,    而是好多行(提示错误的)。这怎么办呢?
      

  6.   

    我在命令行   写了          java -version   确实正常的
      

  7.   

    配置是这样的          java——home             C:\Program Files\Java\jdk1.6.0_10       
                            
                           classpath              .;C:\Program Files\Java\jdk1.6.0_10\lib;
     path             C:\Program Files\Java\jdk1.6.0_10\bin;       %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Bluetooth Software\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs                            麻烦告诉我哪里错了谢谢
      

  8.   

    我现在环境配置   jdk1.6   eclipse3.7  都是可以的,我纠结一下午不行,我发现就是   System.out.printf  这个一直都是出问题              The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, int, double)。
    就是我  输出   System.out.printf("fjahfja");  也得到上面那样的错误。
    我下午重新在官方下载jdk            jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008
    还是不行
    我一直找人帮我解答  不行啊大哥。跪求解决方法
      

  9.   

    把 classpath 的配置项删了,JDK 1.5 及以后就不再需要这个了。
      

  10.   

    你从哪个官网下载的?看你这个包很明显不是官网上的,还是个 2008 年的 JDK 1.6.0_10,而且还是个 RC2 版。建议你到真正的官网上去下载吧。http://www.oracle.com/technetwork/java/javase/downloads/index.html就在今天 Oracle 正式发布了 JDK 7 的版本,有兴趣的话可以下来看看。
      

  11.   

    到这里
    http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-6u3-jdk-6u26-downloads-439816.html下载这个
    java_ee_sdk-6u3-jdk-windows.exe