java - 计算给定日期的一天

标签 java date

从给定的日期开始,我需要计算当天的午夜。这是我想出的。它太丑陋了,我认为必须有更好的方法。

private Date day(Date creation) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(creation);
    calendar.set(Calendar.HOUR_OF_DAY, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.MILLISECOND, 0);
    return calendar.getTime();
}

建议?

肯特

最佳答案

您应该考虑过时的内置日期 API。而是使用 Joda 日期和时间 API。

这是您的方法的直接替代方法。

private Date day(Date creation) {
    return new DateMidnight(creation).toDate();
}

这是一个简单的测试:

public static void main(String[] args) {
    final Date creation = new Date();
    final Date midnight = new Foobar().day(creation);
    System.out.println("creation = " + creation);
    System.out.println("midnight = " + midnight);
}

输出是:

creation = Sun May 31 10:09:38 CEST 2009    
midnight = Sun May 31 00:00:00 CEST 2009

关于java - 计算给定日期的一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/930904/

相关文章:

java - 判断Spring/Spring Security等知识的问题

java - 实体关系是否正确?

java - 如何按值对 ConcurrentHashMap 进行排序?

javascript - 在javascript中添加具有意外结果的日期

php - 使用 PHP 创建最近 30 天的数组

java - 为什么这个break语句没有按预期工作?

java - 构建时传输 maven-metadata.xml 失败的警告和解决依赖关系的错误

php - 如何根据日期(unix时间记录)从MySQL中选择数据

mysql - 检索保存为字符串的日期

objective-c - 从 NSDate 获取天数