我的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
}
答案 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。