我的问题时间20:34:54时间应该是动态变化所以我只需要20小时就可以将它存储到int变量中 如何解决它请在编码中简单解释一下 感谢
答案 0 :(得分:1)
如果您将其存储为字符串,则只需执行以下操作:
String[] splitTime = time.split(":");
int firstNumber = Integer.parseInt(splitTime[0]);
第一行将字符串拆分为':'字符,第二行将字符串“20”解析为整数。
如果它存储为其他东西,例如某种时间容器对象,则必须指定,因为该过程会有所不同。
答案 1 :(得分:1)
我回答了类似问题here。
如果您尝试从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。我希望我能帮到你一点。
编辑:小时不是来自字符串而是实际日期:
Calendar calendar = new GregorianCalendar();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
System.out.println("The hour is: "+hour);