Java 如何将日期转换为整数数组?

Java 如何将日期转换为整数数组?,java,arrays,split,calendar,Java,Arrays,Split,Calendar,我想制作hours和minutes数组,这些数组对于19:49应该包含 hours[0] = 1 hours[1] = 9 minutes[0] = 4 minutes[1] = 9 问题是,当我执行代码时: Calendar rightNow = Calendar.getInstance(); String hour[] = String.valueOf(rightNow.get(Calendar.HOUR_OF_DAY)).split(""); String minute[] = Stri

我想制作
hours
minutes
数组,这些数组对于
19:49
应该包含

hours[0] = 1
hours[1] = 9
minutes[0] = 4
minutes[1] = 9
问题是,当我执行代码时:

Calendar rightNow = Calendar.getInstance();
String hour[] = String.valueOf(rightNow.get(Calendar.HOUR_OF_DAY)).split("");
String minute[] = String.valueOf(rightNow.get(Calendar.MINUTE)).split("");
当我打印这个的时候

System.out.println(hour[0] + ""+hour[1] + ":" + minute[0] +""+minute[1]);
我有这个输出
1:4
,但它应该是
19:49


更新:我使用的是1.7JDK,我看到的
hour[2]
包含
9
minute[2]
9
在Java-8之前的版本中,问题是当我们
拆分(分隔符)
字符串时

delimiter[Data]delimiter[Data]delimiter[Data]
我们将得到结果数组

"", "[Data]", "[Data]", "[Data]"
在您的案例中,分隔符是空字符串
,空字符串不仅存在于字符之间,而且存在于字符串的开头和结尾

要解决此问题,可以使用
split((?!^)
,只要后面没有字符串开头(
^
)(不包括文本开头的空字符串),就会在每个位置进行拆分


在Java8中,这种行为发生了变化:

我猜您要找的是这样的东西

    int[] hour = new int[2];
    int[] minute = new int[2];

    Calendar rightNow = Calendar.getInstance();

    int tempHour = rightNow.get(Calendar.HOUR_OF_DAY);
    int tempMin  = rightNow.get(Calendar.MINUTE);

    hour[0]   = (int)Math.floor(tempHour/10);
    hour[1]   = tempHour%10;

    minute[0] = (int)Math.floor(tempMin/10);
    minute[1] = tempMin%10;

    System.out.println(hour[0] + "" + hour[1] + ":" + minute[0] + "" + minute[1]);

对我来说很好。投票以不可生产的方式关闭。另外,这是一个
字符串
数组。@SotiriosDelimanolis我想你使用的是Java8?Java8忽略第一个匹配前面的空字符串。Java7没有,这就是为什么有些数字不存在(索引0是空字符串,索引1是第一个数字)。但是因为我在打电话,我写不出正确的答案。我使用1.7JDK,但小时[2]返回我9分钟[2]返回我9/不,我想要数组int-hour[]和数组int-minute[],当数组中有10:31时,我应该让hour[0]=1小时[1]=0分钟[0]=3分钟[1]=1编辑。看看这个。如果需要任何解释,请随时询问)