Я пытаюсь разделить дату с миллисекундами и распечатать в моем формате, но с индексом из связанного исключения. Он работает в случае split ("/"), но не с split (".").Функция разделения строк не работает по желанию
Я не знаю, почему это происходит.
Кодекс:
public class c {
public static void main(String[] arg)
{
Date date=new Date();
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.FFF");
System.out.println(formatter.format(date));
String a=formatter.format(date);
String b[]=a.split(" ")[0].split("/");
String x1=(Integer.parseInt(b[2])-2000)+b[1]+b[0];
System.out.println("date part is : "+x1);
String c[]=a.split(" ")[1].split(":");
System.out.println(c[0]);
System.out.println(c[1]);
System.out.println(c[2]);
System.out.println(c[2].trim().split(".")[0]);// exception at this line
System.out.println(c[2].trim().split(".")[1]);
String x2=c[0]+c[1]+c[2].split(".")[0]+c[2].split(".")[1]+"";
System.out.println("time part is : "+x2);
}
}
Log является:
08/10/2013 12:02:18.002
date part is : 131008
12
02
18.002
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:0 at c.main(c.java:22)
как @Tichodroma указал, меняя ''. "' '' '\\." 'должен делать трюк, но ... ... ваш код ужасен ! Почему вы даже беспокоитесь о том, чтобы делать все эти конкатенации и разбивать jugglings, в то время как есть очень простые аксессоры, которые вы можете использовать в классе 'Date'? –
@ Orabîg Аксессоры на 'Date' устарели. –
Ну, хорошо, но используя SimpleDatFormat и извлекайте информацию из результирующей строки. Звучит ли это лучше, чем использование базовых Data accessors? Я так не думаю (imho) –