Почему я не могу преобразовать строку в int? - PullRequest
0 голосов
/ 22 апреля 2020

Я очень новичок в Java. У меня проблема. У меня есть String currentTime со значением текущего времени, например: «2204201810». Я хочу преобразовать эту строку в целое число. Ошибка:

Причина: java .lang.NumberFormatException: Для входной строки: "2204201804"

Но я не знаю, почему Java не может преобразовать это! Я имею в виду, что строка содержит только цифры, не более.

Вот мой код:

GregorianCalendar now = new GregorianCalendar();
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);

df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
String currentTime = df.format(now.getTime());

currentTime = currentTime.replace(".", "");
currentTime = currentTime.replace(" ", "");
currentTime = currentTime.replace(":", "");
try {
    int currentTimeInt = Integer.valueOf(currentTime);
} catch (NumberFormatException ex) {
    //Error
}

1 Ответ

2 голосов
/ 22 апреля 2020

Значение, которое вы пытаетесь преобразовать в int (2204201804), превышает максимальную целочисленную емкость, которая составляет 2147483647 в Java. Попробуйте использовать long вместо этого. Или, может быть, даже BigInteger, в зависимости от ваших потребностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...