当前位置: 代码迷 >> J2SE >> 本人刚刚开始学习JAVA,关于String.format()的有关问题
  详细解决方案

本人刚刚开始学习JAVA,关于String.format()的有关问题

热度:31   发布时间:2016-04-23 19:59:23.0
本人刚刚开始学习JAVA,关于String.format()的问题


import java.util.Date;
public class GetDate {
public static void main(String[] args) {
// TODO Auto-generated method stub
         Date date=new Date();
         String hour=String.format("%tH",date);
         String minute=String.format("%tM",date);
         String second=String.format("%tS",date);
         System.out.println("现在是:"+hour+"时"+minute+"分"+second+"秒");
}
}

Exception in thread "main" java.lang.Error: 无法解析的编译问题:
无法解析类型 java.lang.CharSequence。从必需的 .class 文件间接引用了它
类型 String 中的方法 format(String, Object[])对于参数(String, Date)不适用
类型 String 中的方法 format(String, Object[])对于参数(String, Date)不适用
类型 String 中的方法 format(String, Object[])对于参数(String, Date)不适用

at GetDate.main(GetDate.java:10)

新手求教,这是怎么回事???帮忙解决一下,谢谢
------解决思路----------------------
Date类的转换可以用这个,日期格式有("YYYYMMddhhmmss"),可以拆分来用。
public static void getDate(){
SimpleDateFormat sdf = new SimpleDateFormat("hhmmss");
Date date = new Date();
String time = sdf.format(date);
String hour = time.substring(0,2);
String minute = time.substring(2,4);
String second = time.substring(4,6);
System.out.println(hour+"时"+minute+"分"+second+"秒");
}
------解决思路----------------------
String hour=String.format("%tH",new Object []{date});
改成对象数组就ok了,刚跑完

------解决思路----------------------
我在本机跑你的代码也没有问题。
JDK String类format源码
public static String format(String format, Object ... args) {
return new Formatter().format(format, args).toString();
 }

第二个参数类型是:Object ...
是可变参数,举个例子:void fun(Object... objs) {} 
你在调用fun(Object ... objs)方法时,传入多少个参数都是可以的,比如你可以这么调用fun("s"),你也可以传入两个参数fun("s","d")

所以不需要将Date对象改为数组对象

  相关解决方案