【问题标题】:how to convert date to int array?如何将日期转换为 int 数组?
【发布时间】:2015-12-31 18:50:00
【问题描述】:

我想制作 hoursminutes 数组,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.7 JDK 并形成我看到的 hour[2] 包含 9minute[2] 9

【问题讨论】:

  • 对我来说很好。投票结束时无法重现。
  • 另外,这是一个String 数组。
  • @SotiriosDelimanolis 我猜你使用的是 Java8? Java8 忽略第一个匹配项前面的空字符串。 Java7 没有,这就是为什么有些数字不存在的原因(索引 0 是空字符串,索引 1 是第一个数字)。但是由于我在打电话,所以我无法写出正确的答案。
  • 我使用 1.7 JDK,但 hour[2] 返回我 9,minute[2] 返回我 9;/

标签: java arrays split calendar


【解决方案1】:

pre-Java-8 中的问题是当我们split(delimiter) 像字符串一样

delimiter[Data]delimiter[Data]delimiter[Data]

我们将得到结果数组

"", "[Data]", "[Data]", "[Data]"

在您的情况下,分隔符是空字符串"",并且空字符串不仅存在于字符之间,而且存在于字符串的开头和结尾。

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

在 Java 8 中,这种行为发生了变化:Why in Java 8 split sometimes removes empty strings at start of result array?

【讨论】:

    【解决方案2】:

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

        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]);
    

    【讨论】:

    • 不,我想要数组 int hour[] 和数组 int minute[],当我们在数组中有 10:31 时,我应该有 hour[0] = 1 hour[1] = 0 minute[ 0] = 3 分钟[1] = 1
    • 已编辑。看一下这个。如果需要任何解释,请随时询问)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2022-10-05
    • 1970-01-01
    相关资源
    最近更新 更多