我正在尝试转换字符串
2010-03-09
进入约会,进一步获得一年的一天。
String dt = "2010-03-09";
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = new GregorianCalendar();
Date d = date.parse(dt);
cal.setTime(d);
int doy = cal.get(Calendar.DAY_OF_YEAR);
我不知道为什么会收到此错误
Exception in thread "main" java.text.ParseException: Unparseable date: "0"
SimpleDateFormat字符串模式是否有问题作为我的参数?
我的条件是严格的,字符串是
的格式2010-03-09
Bc我有这种格式的4000个日期数组
我们非常感谢任何帮助,我是Calendar,Date和SimpleDateFormat类的新手
我正在处理数组,上面的例子是一般情况。这是我正在处理的实际案例
public static int[] todoy(String[] dt) { // input array of String (dates) and will return array of DOY's
int[] re = new int[size];
Date d = null;
for (int i=0;i<size;i++){
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = new GregorianCalendar();
try {
d = date.parse(dt[i]);
} catch (ParseException e) {
e.printStackTrace();
}
cal.setTime(d);
re[i] = cal.get(Calendar.DAY_OF_YEAR);
}//fill in array of DOY's
return re;
}//inputs date such as 5/2 and returns integer for which day of the year it is
答案 0 :(得分:1)
请试试这段代码吗?
public static int[] todoy(String[] dt) { // input array of String (dates) and will return array of DOY's
int[] re = new int[size];
Date d = null;
if(dt == null) return null;
for (int i=0;i<size;i++){
if(dt[i] != null && dt[i] != "0") {
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = new GregorianCalendar();
try {
d = date.parse(dt[i]);
} catch (ParseException e) {
e.printStackTrace();
}
if(d != null ) {
cal.setTime(d);
re[i] = cal.get(Calendar.DAY_OF_YEAR);
}
}
}//fill in array of DOY's
return re;
}
您需要使用try-catch子句包围parse
方法。似乎其中一个条目的格式不正确。当你发现异常时,你可以检查究竟是什么原因。