Exception in thread “main“ java.lang.IllegalArgumentException: Cannot format given Object as a Date
Exception in thread “main” java.lang.IllegalArgumentException: Cannot format given Object as a Date运行下面代码出现上面这个错误:package hive;import java.text.SimpleDateFormat;import org.apache.hadoop.hive.metastore
·
Exception in thread “main” java.lang.IllegalArgumentException: Cannot format given Object as a Date
运行下面代码出现上面这个错误:
package hive;
import java.text.SimpleDateFormat;
import org.apache.hadoop.hive.metastore.api.Date;
import org.apache.hadoop.hive.ql.exec.UDF;
public class myprint extends UDF {
public String evaluate1() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return df.format(new Date());
}
//主方法测试一下是否可以输出,代码是否有问题
public static void main (String[] args) {
myprint sm=new myprint();
System.out.println(sm.evaluate1());
}
}

我反复找原因,找到了下面这个原因:
把import org.apache.hadoop.hive.metastore.api.Date;去掉
改成:import java.util.Date;通用的这个就不会报错了
代码如下:
package hive;
import java.text.SimpleDateFormat;
import org.apache.hadoop.hive.ql.exec.UDF;
import java.text.SimpleDateFormat;
public class myprint extends UDF {
public String evaluate1() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return df.format(new Date());
}
//主方法测试一下是否可以输出,代码是否有问题
public static void main (String[] args) {
myprint sm=new myprint();
System.out.println(sm.evaluate1());
}
}

也可以用下面这个获取系统的当前时间:
package hive;
import java.text.SimpleDateFormat;
import org.apache.hadoop.hive.metastore.api.Date;
import org.apache.hadoop.hive.ql.exec.UDF;
public class hivedate extends UDF{
public Date evaluate1() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//return df.format(new Date());
return null ;
}
这个就不要用到这个了,可以到系统给的包
import java.util.Date;
问题解决了,不过上面是我解决问题的方法,和大家的不一样,大家可以认真思考,找到自己问题所在。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)