Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符串转换为int?_Java_String_Int_Numberformatexception_Minute - Fatal编程技术网

Java 如何将字符串转换为int?

Java 如何将字符串转换为int?,java,string,int,numberformatexception,minute,Java,String,Int,Numberformatexception,Minute,这里的代码,我试图转换分钟,这是字符串类型,整数类型,但我有NumberFormatException错误,任何人都可以帮助我,我如何处理这种情况。谢谢 import java.util.Date; class DateDemo { public static void main(String args[]) { // Instantiate a Date object Date date = new Date(); //

这里的代码,我试图转换分钟,这是字符串类型,整数类型,但我有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);
        }
    }
}
使用

出现异常是因为您试图将字符串“当前日期/时间:xx”转换为数字

    LocalTime now = LocalTime.now(ZoneId.of("Indian/Mahe"));
    int currentMinuteOfHour = now.getMinute();
    System.out.println(currentMinuteOfHour);
在我的电脑上,这个刚刚打印出来

五十三

无需将分钟格式化为字符串并重新解析

另外,
Date
类早已过时(没有双关语)。最好使用
java.time
,现代java日期和时间API。和你一起工作真是太好了。正如您所看到的,它提供了更简单的代码

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

你的代码出了什么问题?您的
String.format()
调用生成的字符串类似于
当前分钟数:43
。这不符合整数的语法(
43
单独使用就可以)。因此,尝试使用
Integer.valueOf(str)
解析它时出现异常


教程链接:解释如何使用
java.time

这不是获得分钟数的正确方法。如果您使用的是Java8或更高版本,您可以这样做以获得分钟

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

您希望从
“当前日期/时间”
中获得什么号码?预期结果是什么?在您尝试解析字符串str时,字符串str的值是多少?我遇到了以下错误:java.lang.NumberFormatException:对于输入字符串:“当前日期/时间:43”,实际上我希望程序将字符串“43”转换为整数类型。@PatrickNijhuis 50它可以工作,谢谢这是正确的解决方案。当您添加到编程项目中时,它在Java6和Java7中也可以工作。我理解,感谢您提供链接。;)
LocalDateTime localDateTime=LocalDateTime.now();
System.out.println(localDateTime.getMinute());