将营业时间值存入变量

时间:2015-03-01 18:16:01

标签: java

我的问题时间20:34:54时间应该是动态变化所以我只需要20小时就可以将它存储到int变量中 如何解决它请在编码中简单解释一下 感谢

2 个答案:

答案 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);