如何将字符串转换为日期Java
目前,我有一个如何将字符串转换为日期Java,java,string,list,parsing,date,Java,String,List,Parsing,Date,目前,我有一个ArrayList,其中以2012-06-19格式填写了日期,我正试图将它们全部添加到Dates的数组中 这是代码中让我失望的部分 listIterator = dateValues.listIterator(); Date [] dates = new Date[dateValues.size()]; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); int i =
ArrayList
,其中以2012-06-19
格式填写了日期,我正试图将它们全部添加到Date
s的数组中
这是代码中让我失望的部分
listIterator = dateValues.listIterator();
Date [] dates = new Date[dateValues.size()];
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
int i = 0;
try{
while(listIterator.hasNext())
{
//System.out.println(listIterator.next().toString());
dates[i] = dateFormat.parse(listIterator.next().toString());
i++;
}
for(i = 0; i < dates.length;i++)
{
System.out.println(dates[i]);
}
}
catch(Exception e){e.printStackTrace()};
}
将打印出ArrayList中的每个日期。输出看起来像
2007-09-07
2007-09-07
2007-10-05
2007-10-05
2007-10-05
2007-10-05
2007-10-05
但是我的dateFormat
行从不向dates[]
添加任何值。任何帮助都将不胜感激
不,这不是家庭作业 试试这个:
List<String> dateValues = new ArrayList<String>();
Date[] dates = new Date[dateValues.size()];
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
int i = 0;
for (String dateValue : dateValues) {
dates[i++] = dateFormat.parse(dateValue);
}
List dateValues=new ArrayList();
日期[]日期=新日期[dateValues.size()];
SimpleDataFormat dateFormat=新SimpleDataFormat(“yyyy-MM-dd”);
int i=0;
for(字符串日期值:日期值){
dates[i++]=dateFormat.parse(dateValue);
}
“代码越少越好”,所以使用这种语言(foreach循环等)来保持代码的小而干净(如上面的代码)
在评论之前,请注意“代码越少越好”,只要代码保持可读性。如果行:
//System.out.println(listIterator.next().toString());
未注释的next()
在一次迭代中被调用两次,这将最终导致抛出NoTouchElementException
。这意味着后续的for
循环将不会执行。存储next()
的结果:
由@Tom Celic编写的解决方案,对我很有效
List<String> dateValues = new ArrayList<String>();
dateValues.add("2012-09-08");
dateValues.add("2011-09-08");
Date[] dates = new Date[dateValues.size()];
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
int i = 0;
for (String dateValue : dateValues) {
dates[i++] = dateFormat.parse(dateValue);
}
System.out.println(dates.length);
System.out.println(dates[0]);
System.out.println(dates[1]);
你能给我们举一个dateValues中的字符串的例子吗?我怀疑它会引发异常,而这个异常会被捕获和忽略,请检查strings的格式。除非你有充分的理由,否则你永远不应该捕获异常并忽略它。至少要打印出来。如果你在一次迭代中两次取消调用
next()
的那一行的注释,这最终会导致抛出NoSuchElementException
。嘿,刚刚添加了系统的示例输出。out.println(),我有一个e.printStackTrace(),我只是从来没有在这里写过对不起。还是没有骰子人,日期可以打印出来,但没有添加任何内容到日期[]
while(listIterator.hasNext())
{
String s = listIterator.next().toString();
System.out.println(s);
dates[i] = dateFormat.parse(s);
i++;
}
List<String> dateValues = new ArrayList<String>();
dateValues.add("2012-09-08");
dateValues.add("2011-09-08");
Date[] dates = new Date[dateValues.size()];
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
int i = 0;
for (String dateValue : dateValues) {
dates[i++] = dateFormat.parse(dateValue);
}
System.out.println(dates.length);
System.out.println(dates[0]);
System.out.println(dates[1]);
2
Sat Sep 08 00:00:00 IST 2012
Thu Sep 08 00:00:00 IST 2011