-8

这是代码,我正在尝试将字符串类型的 Minutes 转换为整数类型,但出现 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);
        }
    }
}
4

3 回答 3

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

在我的电脑上,这只是打印出来的

53

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

此外,该Date课程早已过时(没有双关语)。更好用java.time的是现代 Java 日期和时间 API。与它一起工作要好得多。如您所见,它提供了更简单的代码。

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

你的代码出了什么问题?你的String.format()电话产生了一个像Current Minutes : 43. 这不符合整数的语法(43单独会)。因此,您尝试使用Integer.valueOf(str).

教程链接: Oracle 教程:日期时间解释如何使用java.time.

于 2018-04-08T11:53:59.960 回答
2

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

LocalDateTime localDateTime=LocalDateTime.now();
System.out.println(localDateTime.getMinute()); 
于 2018-04-08T11:54:05.910 回答
1

采用

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

您得到异常是因为您尝试将字符串“当前日期/时间:xx”转换为数字;

于 2018-04-08T11:49:27.857 回答