奇怪的阅读与Java日历

时间:2011-10-27 07:34:59

标签: java groovy calendar

有没有人在Java日历中遇到如此奇怪的阅读?以下代码段是用Groovy编写的(在Grails中)

Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("Asia/Singapore"))    
cal.setTime(this.timeEnd)
def endHour = cal.get(Calendar.HOUR_OF_DAY)
def endMinute = cal.get(Calendar.MINUTE)
println "cal gettime ${cal.getTime()} -timeend- ${this.timeEnd} end hour!!! $endHour && $endMinute"

它得到了以下结果

  

cal gettime Thu Jan 01 16:20:00 GMT + 08:00 1970 -timeend- 1970-01-01    16:20 :00.0结束时间!!! 15&& 50

当我的日期显示为16:20时,检索单个字段会给我15:50。 任何人都有任何想法?

谢谢你, 罗伯特

2 个答案:

答案 0 :(得分:1)

因为$ {cal.getTime()}和$ {this.timeEnd}是日期值,并且格式化为默认时区。您需要SimpleDateFormat才能显示特定TimeZone的日期。

答案 1 :(得分:0)

this.timeEnd的时区更改为"Asia/Singapore"可能会将您的初始时间缩短半小时。

timeanddate.com

上查看您的两个时区