Java 日期截止时间信息

2022-08-31 08:17:10

我有一个包含日期和时间信息的Java Date对象。我想写一个切断时间信息的方法,截断小时-分钟-秒,所以我只剩下日期。

示例输入:

2008-01-01 13:15:00

预期输出:

2008-01-01 00:00:00

你有小费吗?我尝试做这样的事情:

(timestamp / (24 * 60 * 60 * 1000)) * (24 * 60 * 60 * 1000)

但我遇到了时区的问题。


答案 1

执行日期/时间操作的推荐方法是使用 Calendar 对象:

Calendar cal = Calendar.getInstance(); // locale-specific
cal.setTime(dateObject);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
long time = cal.getTimeInMillis();

答案 2

你有没有看过Apache Commons Lang中的DateUtils截断方法?

Date truncatedDate = DateUtils.truncate(new Date(), Calendar.DATE);

将删除时间元素。