Я пытаюсь понять, почему следующий java.time.Clock
возвращает время UTC вместо местного часового пояса (EST).
C:\Users\Felipe>scala
Welcome to Scala 2.12.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_65).
Type in expressions for evaluation. Or try :help.
scala> import java.time._
import java.time._
scala> ZoneId.systemDefault()
res0: java.time.ZoneId = America/New_York
scala> val clock = Clock.systemDefaultZone()
clock: java.time.Clock = SystemClock[America/New_York]
scala> clock.instant
res1: java.time.Instant = 2017-07-06T16:20:04.990Z
Текущее время, когда я запустил вышеуказанное, было 12:20pm
(т.е. за 4 часа до показанного времени UTC)
toString()
, но и в том, чтоInstant
не имеет часового пояса: КлассInstant
предназначен только для представления момента времени и внутренне хранит значение в наносекундах из фиксированной эпохи1970-01-01Z
. Таким образом, Instant не может быть отформатирован как дата или время без предоставления какой-либо формы часового пояса. Следовательно, формат UTC по умолчанию. 06.07.2017toString()
и забыл упомянуть самую важную часть. Я добавил эту информацию в ответ, большое спасибо! 06.07.2017