从String获取时间

时间:2012-03-24 15:15:59

标签: java string parsing time

我的Java代码必须从控制台获取字符串“HH:MM”,并且需要使用它。 是否有可能从字符串中解析这样的时间,以便添加,例如,2小时。

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Enter some time:");
String enteredTime = in.readLine(); 
// here I want to get time in some variable   

谢谢!

结果我必须得到三个日期,并定义另一个日期之间有三个日期。 我知道我可以在部件上拆分字符串并使用它们,但我喜欢用这种时间操作的简单方法。

我找到了很好的解决方案:

SimpleDateFormat parser = new SimpleDateFormat("HH:mm");
Date ten = parser.parse("10:00");
Date eighteen = parser.parse("18:00");

try {
    Date userDate = parser.parse(someOtherDate);
    if (userDate.after(ten) && userDate.before(eighteen)) {
    ...
}
} catch (ParseException e) {
    // Invalid date was entered
}

2 个答案:

答案 0 :(得分:5)

sdf = new java.text.SimpleDateFormat ("HH:mm");
sdf.parse ("13:47");

答案 1 :(得分:2)

我知道你想做一些日期算术,比如在日期中添加持续时间。那么你一定要使用joda time而不是java.util.Date和Calendar。

Joda为您提供了Period和Duration实体以及一个漂亮且可重复使用的API。