我使用的是Talend 5.5。
在我的项目中,有一部分我需要将IST格式的日期转换为这种格式:"yyyy-MM-dd"。
例如:
wed 0ct 08 00:00:00 IST 2014
至
2014-10-08
我把这个代码放在tMap组件中:
new SimpleDateFormat("yyyy-MM-dd")
.parse(new SimpleDateFormat("yyyy-MM-dd")
.format(new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse(row4.Date)))
row4.date是我想要转换的日期,例如等于"wed 0ct 08 00:00:00 IST 2014"。
我得到了一个例外:
java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1380)
at java.text.DateFormat.parse(DateFormat.java:355)
出现异常的原因是什么?
if(null!=row4 && null!=row4.Date)//use null check
new SimpleDateFormat("yyyy-MM-dd")
.parse(new SimpleDateFormat("yyyy-MM-dd")
.format(new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse(row4.Date)))
处理Null指针的一种方法是进行Null检查,另一种更好的方法是使用try-catch块,这样它就不会中断代码执行。
试试这个:
Date date = new Date();
System.out.println(date);
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(formatter.format(date));