2013-03-21 54 views
0

我需要让我创建这个代码,以获得实际日期自定义时间:如何获得自定义小时的当前日期?

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(); 

我希望它的工作原理,但它似乎是一个利特尔有点复杂。

是否有其他方式如何与自定义小时取得日期?

回答

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); 

约达时间有很大愉快API超过java.util.{Date, Calendar}

+0

thx很多你有一些语法错误,但它的作品。 – hudi 2013-03-21 16:34:14

+1

@hudi:嗯,我有一个变量名的拼写错误。不是真的语法错误......无论如何,修复。 – 2013-03-21 16:37:44

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

你看这个:

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

除了使用乔达时间我会做到这一点稍微干净:

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())是不必要的。

+0

日历家伙按照精度顺序发布,他们重置! :-) – James 2013-03-21 15:52:23