Вы имели в виду HH:mm:ss
для компонента времени, а не hh:mm:ss
. Он использовал 12-часовые часы и эффективно интерпретировал 12:59:59 00: 59: 59.
Обратите внимание, что ваш синтаксический анализ не выполняет преобразование в определенный часовой пояс - потому что Date
не знает о часовых поясах . Вы видите только EDT, потому что (я подозреваю) вы печатаете d.toString()
, который всегда использует местный часовой пояс.
API даты / времени Java довольно ужасен - если возможно, я бы настоятельно рекомендовал вам перейти на Joda Time , где вы бы использовали DateTime
, что делает имеет часовой пояс ... и позволяет вам конвертировать между ними.