日期:2014-05-20 浏览次数:20980 次
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()这个参数是不符合要求的,这里需要的是一个对象数组
比如这样传:
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版本的问题