Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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
Android 使用日历类访问小时、分钟和秒_Android_Calendar - Fatal编程技术网

Android 使用日历类访问小时、分钟和秒

Android 使用日历类访问小时、分钟和秒,android,calendar,Android,Calendar,我试图在特定的日期和时间设置闹钟。因此,使用日历设置小时和分钟。但是,当我尝试使用cal.set访问日历中设置的小时时,我得到的值与我手动设置的值不同 代码 Calendar cal=Calendar.getInstance(); cal.set(Calendar.HOUR,7); cal.set(Calendar.MINUTE,30); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); Toast.makeText(g

我试图在特定的日期和时间设置闹钟。因此,使用
日历设置小时和分钟
。但是,当我尝试使用
cal.set
访问
日历
中设置的小时时,我得到的值与我手动设置的值不同

代码

Calendar cal=Calendar.getInstance();
cal.set(Calendar.HOUR,7);
cal.set(Calendar.MINUTE,30);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Toast.makeText(getApplicationContext(), "Alarm worked. "+cal.HOUR+cal.MINUTE,cal.SECOND Toast.LENGTH_LONG).show(); 
我想要的结果

警报响了。7:30:0

我现在得到的

警报响了。10:12:13

p.S

1.我发现很多帖子都是关于
Calendar
问题的,但都找不到我的解决方案

2.我得到的结果,即
10:12:13
也不是我的当前时间(当前日期、当前分钟、当前秒)。因此,我不知道这些数据来自何处

3.我试着用
HOUR\u OF_DAY
代替
HOUR
,但没用

解决方案

Toast.makeText(getApplicationContext(), "Alarm worked. "+cal.get(Calendar.HOUR)+" "+cal.get(Calendar.MINUTE)+" "+cal.get(Calendar.SECOND), Toast.LENGTH_LONG).show(); 
这是因为
Calendar.HOUR
Calendar.MINUTE
都是常量。请查看@PopoFibo的答案以获得清晰的图片。

您可以尝试使用:

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 7);
calendar.set(Calendar.MINUTE, 30);
然后烤一烤

日期s=cal.getTime()
SimpleDataFormat sdf=新的SimpleDataFormat(“HH:mm:ss a”)
字符串t=sdf.格式;
Toast.makeText(this,t,Toast.LENGTH_SHORT).show()

有关更多参考信息,请参阅


在设置时间之前添加这些行

                Cal.set(Calendar.MONTH , month);
                Cal.set(Calendar.YEAR, year);
                Cal.set(Calendar.DAY_OF_MONTH,day);

问题在于您的
Toast
,您正在打印
日历
类的常量:

Calendar.HOUR = 10
Calendar.MINUTE = 12
Calendar.SECOND = 13
取而代之的是,在它们各自的索引中获取值,比如
HOUR
的值应该是
cal.get(Calendar.HOUR)

将给出(正确的输出):

7:30:0
10:12:13
和,
System.out.println(Calendar.HOUR+”:“+Calendar.MINUTE+”:“+Calendar.SECOND)

将给出(不正确的输出):

7:30:0
10:12:13

请参阅原始帖子。它显示
警报已工作。10:12:13
尝试了这个问题,但问题是一样的。我不知道这10 12 13是从哪里来的!很好。很有魅力。
Calendar.HOUR
是一个常数。知道了。谢谢你的宝贵帮助。嘿@PopoFibo,你能帮我检查一下吗?我想还有一个愚蠢的问题。请看看你能不能帮我。谢谢你的建议。但这不起作用。不过,我用上面的答案修复了它。请检查我的编辑。谢谢建议。虽然它似乎是正确的,但在我的情况下不起作用。请查看我的编辑以了解我的解决方案。