0

我正在尝试仅从java.util.date. 我知道我可以将时间设置为 0,但如果可能的话,我正在寻找一种更简洁、更简洁的方式。这存在吗?

谢谢!Krt_马耳他

4

2 回答 2

0

另一种选择是库中的truncate方法DateUtils。您输入您感兴趣的日期和字段(在本例中CALENDAR.DAY_OF_MONTH)。其余的将设置为 0。实际上:

DateUtils.truncate(Calendar.getInstance(), Calendar.DAY_OF_MONTH).getTime() 

做了这项工作。

有关该方法的更多信息位于:http ://commons.apache.org/lang/api-2.4/org/apache/commons/lang/time/DateUtils.html#truncate%28java.lang.Object,%20int%29

于 2011-03-08T12:49:44.187 回答
0

更简洁的方法是使用Joda Time开始,其中有 LocalDate、LocalTime、LocalDateTime、DateTime、Instant 等单独的概念。

可以在 java.util.Date 和 Joda 类型之间进行转换,但我建议您尽可能多地使用 Joda 来编写代码,并且仅在您真正需要时才进行转换。

抱歉,如果您希望避免使用额外的库 - 但 Joda比内置 API好得多,值得为 IMO 付出努力。请注意,在 Java 类型中,您需要确定您感兴趣的时区 - java.util.Date 定义了一个瞬间,根据您的时区,该时间可能发生在世界各地多达三个不同的日期.

于 2011-03-08T11:24:05.787 回答