日期:2014-05-20  浏览次数:20736 次

String.formak里面的%s,%d怎么用的?求解!
sql.append.String.format(" and action_datetime <= %d", endTime);
一个日期型的字段用%什么表示啊?试了好多都不对用%d的话提示
ava.util.IllegalFormatConversionException: d != java.util.Date
java.util.Formatter$FormatSpecifier.failConversion(Unknown Source) 
打出来的字段是
action_datetime <= Tue Oct 25 00:00:00 GMT+08:00 2011

求解


------解决方案--------------------
Java code

System.out.print(String.format(" and action_datetime <= %1$tF %1$tT", new Date()));

------解决方案--------------------
如果是日期 就要用 formatdatetime 这个函数了
------解决方案--------------------
%s 是字符串
%d 是整数

我记得好像是。
------解决方案--------------------
参考java.util.Formatter的javadoc
Java code

    int count = 10000;
    Date date = new Date();
    String str  = String.format("%2$tY-%2$tm-%2$td: %1$,d", count, date);
    System.out.println(str);

------解决方案--------------------
打开java API ,找到java.util.Formatter这个类,应该有你想要的。
------解决方案--------------------
System.out.printf("%tF %<tT", System.currentTimeMillis());

除了 6 楼提到的 Formatter 类的 API 文档之外,可以看看下面这本书第九章,其中有很详细的介绍:


Java 5.0 Tiger程序高手秘笈
http://www.oreilly.com.cn/index.php?func=book&isbn=7-5641-0120-2