0

我正在从日期生成数字,我正在使用 Integer.parseInt(myDateNumberString)。

我的问题是,如果数字太大,它会给我一个错误。

public Integer currentDate(){
        String current_date = new SimpleDateFormat("yyyyMMddHHmm").format(Calendar.getInstance().getTime());
        //int _current_date = Integer.parseInt(current_date); // Error, too big number
        int _current_date = new BigInteger(current_date).intValue();
        return _current_date; // Error, output: -51212897
    }

我想获得价值,比如201812250203 如果我的日期格式没有mm它是可以的,但我需要声明它。

4

3 回答 3

7
于 2018-12-24T19:26:49.940 回答
0

您可以使用BigInteger number = new BigInteger(string);,它将给定的字符串解析为 BigInteger。

文档说:

通过解析值构造一个新的 BigInteger。字符串表示由一个可选的加号或减号组成,后跟一个非空的十进制数字序列。数字被解释为 Character.digit(char,10)。

于 2018-12-24T19:10:42.397 回答
0

将方法的返回类型更改为 long 以及返回变量:

编辑:摆脱 .intValue() 方法并将方法的返回类型更改为 BigInteger 和变量。

public static void main(String[] args) {
    System.out.println(currentDate());
}

public static BigInteger currentDate() {
    String current_date = new SimpleDateFormat("yyyyMMddHHmm").format(Calendar.getInstance().getTime());
    // int _current_date = Integer.parseInt(current_date);
    BigInteger _current_date = new BigInteger(current_date);
    return _current_date;
}
于 2018-12-24T19:32:27.393 回答