使用Calendar类访问小时,分钟和秒

时间:2014-01-31 10:50:25

标签: android calendar

我正在尝试在特定日期和时间设置闹钟。所以使用Calendar设置小时和分钟。但是当我尝试使用{{1}访问Calendar中设置的小时时我获得的值与手动设置的值不同。

代码

cal.set

我想要的结果

警报有效。 7:30:0

我现在得到什么

警报有效。 10点12分13秒

P.S

1.我发现许多帖子涉及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(); 个问题,但找不到我的解决方案。

2.我得到的结果即Calendar不是我当前的时间(当前日期,当前分钟,当前秒数)。所以我不知道为什么以及这些数据来自哪里。< / p>

3.我尝试使用10:12:13代替HOUR_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是常数。请参阅@PopoFibo的答案以获得清晰的图片。

4 个答案:

答案 0 :(得分:1)

  

日期s = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat(“HH:mm:ss a”);
String t = sdf.format(s);             
Toast.makeText(this,t,Toast.LENGTH_SHORT).show();

更多参考。见http://www.asbhtechsolutions.com/android-tutorial/1-android-get-current-time-and-date

答案 1 :(得分:1)

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

Calendar.HOUR = 10
Calendar.MINUTE = 12
Calendar.SECOND = 13

相反,请在各自的索引处获取值 - 例如HOUR cal.get(Calendar.HOUR)

System.out.println(cal.get(Calendar.HOUR) + ":" + cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND));

会给出(正确的输出):

7:30:0

而且,System.out.println(Calendar.HOUR + ":" + Calendar.MINUTE + ":" + Calendar.SECOND);

会给出(输出错误):

10:12:13

答案 2 :(得分:0)

你可以尝试:

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

然后干杯

答案 3 :(得分:0)

在设定时间之前添加这些行..

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