如何用 Java 表示一天中的时间?

use*_*778 5 java calendar date

我希望能够创建一种日历,其中每一天都由时段组成。在 Java 中表示此设置的最佳方式是什么?我正在解析该信息,得到的结果是10:00和一个 int 3,其中 int 代表事件将花费的时间。

我希望能够轻松添加事件,它们永远不会真正被删除,但会经常被查找。

我查看了 Java.text.DateFormat,希望它能够满足我的需求,但它似乎主要用于打印输出。

the*_*dam 5

使用Joda-Time(或等待 Java 8 实现其后继者)。该库还包含强大的解析选项和方便的操作选项。如果您收到一个包含事件所需时间的整数,您可以使用它来获取结束时间。

int hours = (parsed from input);
DateTimeFormatter dtf = DateTimeFormat.forPattern("HH:mm");     
LocalTime startTime = dtf.parseLocalTime(stringWithTimeFromUser);
LocalTime endTime = startTime.plusHours(hours);
Run Code Online (Sandbox Code Playgroud)

如果您需要将其转换为日期时间,您也可以组合这些类。即,如果您有日期时间并且只想将时间更改为用户提供的时间,您将:

DateTime dateTime = getItFromSomewhere();
DateTime dateTimeWithNewTime = dateTime.withFields(localTime);
Run Code Online (Sandbox Code Playgroud)

通常,您也会从用户那里获得日期;)

图书馆有大量文档,请查看那里。


Jim*_*ows 2

使用 Joda-Time 来表示实际时间。然后我将使用 PrimeFaces Schedule 组件(http://www.primefaces.org/showcase/ui/scheduleHome.jsf)进行显示。

这意味着学习 JSF 和 JPA 库。

  • Nitpick:我认为没有足够的上下文来了解 OP 打算如何向用户表达这个概念,但这只是我的想法;) (2认同)
  • 是的,但这并不决定框架,例如可以使用 Swing 或 JavaFX 来做到这一点 (2认同)