如何获取自定义小时的当前日期?

时间:2013-03-21 15:42:25

标签: java

我需要获得自定义小时的实际日期,因此我创建了此代码:

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());

Calendar output = Calendar.getInstance();
output.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE), 1, 0);
output.getTime();

我希望它有效,但似乎有点复杂。

还有其他方法如何使用自定义小时获取日期?

4 个答案:

答案 0 :(得分:3)

  

还有其他方法如何使用自定义小时获取日期?

就个人而言,我会改为使用Joda Time

// Ideally use an injectable clock...
LocalDate today = new LocalDate();
// If this is effectively constant, extract it to a final static field
LocalTime time = new LocalTime(1, 0);

// Or use toDateTime(...) depending on what you're trying to accomplish
LocalDateTime todayAtTime = today.toLocalDateTime(time);

Joda Time有一个java.util.{Date, Calendar}

更令人愉快的API

答案 1 :(得分:0)

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.MINUTE, 0);
cal.getTime()

答案 2 :(得分:0)

怎么样:

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, your_custom_hour);
your_custom_hour : 0-23

答案 3 :(得分:0)

除了使用Joda时间,我会稍微清洁一下:

 int hour = 1;
 Calendar cal = Calendar.getInstance();
 cal.set(Calendar.HOUR, hour);
 cal.set(Calendar.MINUTE, 0);
 cal.set(Calendar.SECOND, 0);
 cal.set(Calendar.MILLISECOND, 0);

Calendar.getInstance()无论如何都会返回当前的日期和时间,因此不需要setTime(new Date())

相关问题