如何只显示小时数并使用int变量?我的意思是打印时间如下午20:30:44,我只想存储几个小时,在int变量中意味着20。怎么做?
如果你知道,有人可以告诉我代码,谢谢?
答案 0 :(得分:2)
尝试使用Calendar的get方法,例如:
Calendar c = ..
c.setTime(...);//if you have time in long coming from somewhere else
int hour = c.get(Calendar.HOUR_OF_DAY);
答案 1 :(得分:0)
如果您尝试从String解析时间,我建议使用以下解决方案:
String time = "20:30:44 PM"; // this is your input string
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss aa");
try {
Date date = sdf.parse(time);
// this is the uglier solution
System.out.println("The hour is: "+date.getHours());
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(date);
// this is nicer solution
System.out.println("The hour is: "+gc.get(Calendar.HOUR_OF_DAY));
} catch (ParseException e) {
System.err.println("Couldn't parse string! "+e.getMessage());
}
date.getHours()
和gc.get(Calendar.HOUR_OF_DAY)
返回int
,在此示例中,我将其打印出来而不创建变量。
当然,您可以使用正则表达式来查找字符串中的小时数,但上面的解决方案应该可以解决问题。您可以详细了解SimpleDateFormat
和可用模式here。我希望我能帮到你一点。
编辑:在他的评论中,autor指出,该日期不是静态的(如字符串中),而是动态的:
Calendar calendar = new GregorianCalendar();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
System.out.println("The hour is: "+hour);
我希望这会有所帮助。