Я разбираю дату, как это. Локаль момента установлена в Германии:
moment("2030-12-31T23:59:59.000Z")
Однако, когда я распечатаю его, он выберет на следующий день:
moment("2030-12-31T23:59:59.000Z").format('L')
-> "01.01.2031"
Вот как выглядит объект момента после синтаксического анализа, и мы можем ясно видеть, что проанализированная дата верна:
Moment {_isAMomentObject: true, _i: "2030-12-31T23:59:59.000Z", _f: "YYYY-MM-DDTHH:mm:ss.SSSSZ", _tzm: 0, _isUTC: false, …}
_d
:
Wed Jan 01 2031 00:00:00 GMT+0100 (CET) {}
_f
:
"YYYY-MM-DDTHH:mm:ss.SSSSZ"
_i
:
"2030-12-31T23:59:59.000Z"
_isAMomentObject
:
true
_isUTC
:
false
_isValid
:
true
_locale
:
Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", _ordinal: "%d.", _ordinalParse: /\d{1,2}\./, …}
_pf
:
charsLeftOver
:
0
empty
:
false
invalidFormat
:
false
invalidMonth
:
null
iso
:
true
meridiem
:
undefined
nullInput
:
false
overflow
:
-1
parsedDateParts
:
(7) [2030, 11, 31, 23, 59, 59, 0]
unusedInput
:
[]
unusedTokens
:
[]
userInvalidated
:
false
__proto__
:
Object
_tzm
:
0
__proto__
:
Object
Как ни странно, я анализирую еще 2-3 даты точно так же (большинство 1 января какого-то года), и они отлично работают!
Я считаю, что это не UTC.
Что здесь происходит?