我如何将 String 转换为 int?

How i convert String to int?

这是代码,我正在尝试将字符串类型的分钟转换为整数类型,但出现 NumberFormatException 错误,任何人都可以帮助我,我如何处理这种情况。谢谢。

import java.util.Date;

class DateDemo 
{
    public static void main(String args[]) 
    {
        // Instantiate a Date object
        Date date = new Date();

        // display time and date
        String str = String.format("Current Minutes : %tM", date );
        try
        {
            int a = Integer.valueOf(str);
            System.out.print(a);

        }
        catch(NumberFormatException e)
        {
            System.out.println("Error is : "+e);
        }
    }
}

使用

String str = String.format("%tM", date );

您遇到异常是因为您尝试将字符串 "Current Date/Time : xx" 转换为数字;

    LocalTime now = LocalTime.now(ZoneId.of("Indian/Mahe"));
    int currentMinuteOfHour = now.getMinute();
    System.out.println(currentMinuteOfHour);

在我的电脑上刚刚打印出来

53

无需将分钟格式化为字符串并解析回来。

Date class 也早已过时(无双关语意)。最好使用 java.time,现代 Java 日期和时间 API。与它一起工作要好得多。正如您所见,它提供了更简单的代码。

当前分钟取决于时区。因此,请在我输入 Indian/Mahe 的位置提供您的预期时区。您可以使用当前的 JVM 时区设置:ZoneId.systemDefault()。您的程序的其他部分或同一 JVM 中的其他程序 运行 可以随时更改该设置。

你的代码出了什么问题?您的 String.format() 调用产生了一个类似于 Current Minutes : 43 的字符串。这不符合整数的语法(43 本身就符合)。因此,您在尝试使用 Integer.valueOf(str).

解析它时遇到了异常

教程 link: Oracle tutorial: Date Time 解释如何使用 java.time.

这不是获取会议记录的正确方法。如果您使用的是 Java 8 或更高版本,您可以这样做以获得分钟数

LocalDateTime localDateTime=LocalDateTime.now();
System.out.println(localDateTime.getMinute());