Java军事时间程序不起作用

时间:2015-12-10 02:40:33

标签: java time

我的程序无效,错误仅在我运行程序后出现。感谢您的帮助。

public class Time {
    private int hour;
    private int minute;
    private int second;

    public void setTime(int h, int m, int s)
    {
        hour = ((h>=0 && h<24) ? h : 0);
        minute = ((m>=0 && m<60) ? m : 0);
        second= ((s>=0 && s<60) ? s : 0);
    }

    public String toMilitary()
    {
        return String.format("%02d:","%02d:", "%02d:", hour, minute, second);
    }
    public static void main(String[] args) {    
    }    
}

public class Time2 {
    public static void main(String[] args) {
        Time TimeObject= new Time();
        System.out.println(TimeObject.toMilitary());
        TimeObject.setTime(13,27,6);
        System.out.println(TimeObject.toMilitary());    
    }
}

1 个答案:

答案 0 :(得分:3)

String.format("%02d:","%02d:", "%02d:", hour, minute, second);

这是错误的。它应该是:

String.format("%02d:%02d:%02d", hour, minute, second);

String.format一个格式字符串和任意数量的对象格式化为该字符串。你拥有的是三个格式字符串和三个要格式化的对象。

但你应该像Scary Wombat建议的那样尝试SimpleDateFormat