【问题标题】:Getting time from String从 String 获取时间
【发布时间】:2012-04-08 19:35:49
【问题描述】:

我的 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
}

【问题讨论】:

  • String#split(":") 在这里可以很好地工作。查看 String API 了解更多信息。
  • 你试过什么?至少在我脑海中浮现的三件事是 java.text.DateFormat、java.text.SimpleDateFormat 和 java.util.Date...
  • 我需要获得三次并定义在另一个日期之间是否有第三个日期。
  • 试试[一个好的日期解析器。][1] [1]:stackoverflow.com/questions/222245/…
  • 日期或时间?这是两个不同的东西。

标签: java string parsing time


【解决方案1】:
sdf = new java.text.SimpleDateFormat ("HH:mm");
sdf.parse ("13:47");

【讨论】:

  • 请注意,这将为您提供“Thu Jan 01 13:47:00 1970”!
  • 正常,我只需要计算次数,日期可以任意
【解决方案2】:

我了解您想要进行一些日期算术运算,例如将持续时间添加到日期。那么你绝对应该使用joda time 而不是 java.util.Date 和 Calendar。

Joda 为您提供 Period 和 Duration 实体以及一个漂亮且可读的 API。

【讨论】:

  • 谢谢,我知道 Joda,但不幸的是,我不能使用除 Java 之外的任何 API。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
  • 2020-04-04
  • 1970-01-01
相关资源
最近更新 更多