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,你能帮我检查一下吗?我想还有一个愚蠢的问题。请看看你能不能帮我。谢谢你的建议。但这不起作用。不过,我用上面的答案修复了它。请检查我的编辑。谢谢建议。虽然它似乎是正确的,但在我的情况下不起作用。请查看我的编辑以了解我的解决方案。