获取时间错误(Java)

获取时间错误(Java),java,debugging,compiler-errors,Java,Debugging,Compiler Errors,测试代码: package testing; public class apples{ public static void main(String args[]){ thetest thetestOb = new thetest(); System.out.println(thetestOb.toMilitary()); thetestOb.setTime(13, 27, 6); System.out.println(t

测试代码:

package testing;

public class apples{
    public static void main(String args[]){
        thetest thetestOb = new thetest();
        System.out.println(thetestOb.toMilitary());
        thetestOb.setTime(13, 27, 6);
        System.out.println(thetestOb.toMilitary());
    }
}
封装测试;
公开考试{
私人整数小时;
私人整数分钟;
二等兵;
公共无效设置时间(int h、int m、int s){
小时=((h>=0&&h<24)小时:0);
分钟=((m>=0&&m<60)?m:0);
秒=((s>=0&&s<60)?s:0);
}
公共字符串toMilitary(){
返回字符串。格式(“%O2d:%O2d:%O2d”,小时、分钟、秒);
}
}

有人能解释一下我为什么会犯这些错误吗?我是Java的初学者,正在学习视频教程。我确保代码是完全相同的,但我得到了这个错误。其他人也有同样的问题。请帮助。

这里您使用的是字母“O”而不是数字零(0)


将它们更改为0,它将工作。

首先,初始化所有变量

 public String toMilitary(){
        return String.format("%O2d:%O2d:%O2d", hour, minute, second);
    }
封装测试;
公开考试{
私人整小时=0;
私人整数分钟=0;
私有整数秒=0;
公共无效设置时间(int h、int m、int s){
小时=((h>=0&&h<24)小时:0);
分钟=((m>=0&&m<60)?m:0);
秒=((s>=0&&s<60)?s:0);
}
公共字符串toMilitary(){
返回字符串。格式(“%02d:%02d:%02d”,小时、分钟、秒);
}
}
因为如果不初始化实例变量,在第一次调用时,
toMilitary()
,小时、分钟和秒都没有任何值。 您仅在第二次设置值


是的,这些将是
0
(零)而不是
O
s<代码>%O2d不是Java语法。它甚至不会编译。

您没有添加错误消息,告诉您为什么会发生这种情况。
O
不是
0
。这是错误消息。。。它没有X,这家伙在教程中写了O,而不是0。@Code123我真诚地建议忽略视频教程,因为视频教程的主要目标可能是获得广告印象,而不是教学。我诚恳地向大家推荐令人尊敬的Java Trail教程:谢谢。刚试过,没用?这对我有效,因为那是你唯一的问题。运行:00:00:00 13:27:06构建成功(总时间:0秒)它确实有效,我为此感谢您。然后,请您选择我的答案作为正确答案。谢谢,上面说我要等一分钟,所以我只是写了评论,没有打扰。不管怎样,给你。
package testing;
public class thetest{
    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("%O2d:%O2d:%O2d", hour, minute, second);
    }
}
 public String toMilitary(){
        return String.format("%O2d:%O2d:%O2d", hour, minute, second);
    }
package testing;
public class thetest{
    private int hour = 0;
    private int minute = 0;
    private int second = 0;

    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);
    }
}