Странное чтение с календарем Java - PullRequest
0 голосов
/ 27 октября 2011

кто-нибудь испытывал такое странное чтение из Java Calendar? Следующий фрагмент написан на 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 Get Time Чт 01 января 16:20:00 GMT + 08: 00 1970 -timeend- 1970-01-01 16: 20 : 00.0 конечного часа !!! 15 && 50

в то время как моя дата показывает 16:20, получение отдельного поля дает мне 15:50. У кого-нибудь есть идеи?

Спасибо, Роберт

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Поскольку $ {cal.getTime ()} и $ {this.timeEnd} являются значениями Date и отформатированы для часового пояса по умолчанию. Вам нужен SimpleDateFormat для отображения даты для определенной временной зоны.

0 голосов
/ 27 октября 2011

Изменение часового пояса с this.timeEnd на "Asia/Singapore" могло бы вернуть ваше первоначальное время на полчаса.

Проверьте свои два часовых пояса на timeanddate.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...