@northguild/gmt 1.18.0 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -2920
- package/dist/calendar/calculate/bucketRange.d.ts +10 -2
- package/dist/calendar/calculate/bucketRange.js +18 -61
- package/dist/calendar/calculate/floorToZone.d.ts +10 -2
- package/dist/calendar/calculate/floorToZone.js +15 -7
- package/dist/calendar/hours/addOperatingTime.d.ts +6 -0
- package/dist/calendar/hours/addOperatingTime.js +7 -1
- package/dist/calendar/hours/isOpenAt.d.ts +6 -0
- package/dist/calendar/hours/isOpenAt.js +6 -0
- package/dist/calendar/hours/nextCloseAt.d.ts +6 -0
- package/dist/calendar/hours/nextCloseAt.js +7 -1
- package/dist/calendar/hours/nextOpenAt.d.ts +6 -0
- package/dist/calendar/hours/nextOpenAt.js +7 -1
- package/dist/calendar/hours/operatingIntervals.d.ts +5 -0
- package/dist/calendar/hours/operatingIntervals.js +5 -0
- package/dist/calendar/hours/operatingTimeBetween.d.ts +5 -0
- package/dist/calendar/hours/operatingTimeBetween.js +5 -0
- package/dist/calendar/hours/recurringWindows.d.ts +8 -1
- package/dist/calendar/hours/recurringWindows.js +12 -4
- package/dist/duration/calculate/durationFromUnits.d.ts +47 -0
- package/dist/duration/calculate/durationFromUnits.js +67 -0
- package/dist/duration/calculate/getDurationUnit.d.ts +2 -2
- package/dist/duration/calculate/getDurationUnit.js +2 -2
- package/dist/duration/calculate/index.d.ts +3 -1
- package/dist/duration/calculate/index.js +3 -1
- package/dist/duration/calculate/negateDuration.d.ts +1 -1
- package/dist/duration/calculate/negateDuration.js +1 -1
- package/dist/duration/calculate/{durationAs.d.ts → totalDuration.d.ts} +25 -19
- package/dist/duration/calculate/{durationAs.js → totalDuration.js} +25 -19
- package/dist/duration/calculate/totalUnits.d.ts +49 -0
- package/dist/duration/calculate/totalUnits.js +73 -0
- package/dist/duration/compare/compareDurations.d.ts +1 -1
- package/dist/duration/compare/compareDurations.js +1 -1
- package/dist/duty/calculate/dutyDayFor.d.ts +38 -0
- package/dist/duty/calculate/dutyDayFor.js +71 -0
- package/dist/duty/calculate/dutyTotals.d.ts +24 -0
- package/dist/duty/calculate/dutyTotals.js +41 -0
- package/dist/duty/calculate/dutyViolations.d.ts +74 -0
- package/dist/duty/calculate/dutyViolations.js +65 -0
- package/dist/duty/calculate/evaluateDutyLog.d.ts +77 -0
- package/dist/duty/calculate/evaluateDutyLog.js +75 -0
- package/dist/duty/calculate/index.d.ts +7 -0
- package/dist/duty/calculate/index.js +7 -0
- package/dist/duty/calculate/longestRun.d.ts +28 -0
- package/dist/duty/calculate/longestRun.js +54 -0
- package/dist/duty/calculate/qualifyingRestPairs.d.ts +37 -0
- package/dist/duty/calculate/qualifyingRestPairs.js +58 -0
- package/dist/duty/calculate/qualifyingRests.d.ts +27 -0
- package/dist/duty/calculate/qualifyingRests.js +49 -0
- package/dist/duty/index.d.ts +3 -0
- package/dist/duty/index.js +4 -0
- package/dist/duty/validate/index.d.ts +1 -0
- package/dist/duty/validate/index.js +1 -0
- package/dist/duty/validate/isValidDutyLog.d.ts +24 -0
- package/dist/duty/validate/isValidDutyLog.js +34 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instant/convert/classifyLocal.d.ts +5 -1
- package/dist/instant/convert/classifyLocal.js +16 -6
- package/dist/instant/convert/fromOffsetInstant.d.ts +4 -0
- package/dist/instant/convert/fromOffsetInstant.js +6 -1
- package/dist/instant/convert/resolveLocal.d.ts +7 -2
- package/dist/instant/convert/resolveLocal.js +16 -8
- package/dist/instant/convert/toOffsetInstant.d.ts +12 -8
- package/dist/instant/convert/toOffsetInstant.js +19 -11
- package/dist/instant/index.d.ts +1 -0
- package/dist/instant/index.js +1 -0
- package/dist/instant/validate/index.d.ts +1 -0
- package/dist/instant/validate/index.js +1 -0
- package/dist/instant/validate/isValidUtcOffset.d.ts +32 -0
- package/dist/instant/validate/isValidUtcOffset.js +35 -0
- package/dist/intermodal/calculate/chargeableDays.d.ts +6 -0
- package/dist/intermodal/calculate/chargeableDays.js +12 -4
- package/dist/intermodal/calculate/freeTimeExpiry.d.ts +7 -0
- package/dist/intermodal/calculate/freeTimeExpiry.js +15 -4
- package/dist/intermodal/calculate/index.d.ts +1 -0
- package/dist/intermodal/calculate/index.js +1 -0
- package/dist/intermodal/calculate/multimodalETA.d.ts +76 -0
- package/dist/intermodal/calculate/multimodalETA.js +145 -0
- package/dist/intermodal/format/bolTimestamp.d.ts +76 -0
- package/dist/intermodal/format/bolTimestamp.js +78 -0
- package/dist/intermodal/format/formatEdifactDate.d.ts +34 -0
- package/dist/intermodal/format/formatEdifactDate.js +42 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactDatePeriod.js +43 -0
- package/dist/intermodal/format/formatEdifactDateTime.d.ts +37 -0
- package/dist/intermodal/format/formatEdifactDateTime.js +45 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.d.ts +40 -0
- package/dist/intermodal/format/formatEdifactDateTimePeriod.js +48 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.d.ts +62 -0
- package/dist/intermodal/format/formatEdifactOffsetDateTime.js +70 -0
- package/dist/intermodal/format/formatEdifactTime.d.ts +35 -0
- package/dist/intermodal/format/formatEdifactTime.js +43 -0
- package/dist/intermodal/format/formatEpcisEvent.d.ts +47 -0
- package/dist/intermodal/format/formatEpcisEvent.js +79 -0
- package/dist/intermodal/format/formatX12Date.d.ts +35 -0
- package/dist/intermodal/format/formatX12Date.js +43 -0
- package/dist/intermodal/format/formatX12DateRange.d.ts +37 -0
- package/dist/intermodal/format/formatX12DateRange.js +45 -0
- package/dist/intermodal/format/formatX12DateTime.d.ts +39 -0
- package/dist/intermodal/format/formatX12DateTime.js +47 -0
- package/dist/intermodal/format/formatX12DateTimeRange.d.ts +40 -0
- package/dist/intermodal/format/formatX12DateTimeRange.js +48 -0
- package/dist/intermodal/format/formatX12Time.d.ts +42 -0
- package/dist/intermodal/format/formatX12Time.js +50 -0
- package/dist/intermodal/format/formatX12TimeElement.d.ts +46 -0
- package/dist/intermodal/format/formatX12TimeElement.js +54 -0
- package/dist/intermodal/format/index.d.ts +14 -0
- package/dist/intermodal/format/index.js +14 -0
- package/dist/intermodal/index.d.ts +3 -0
- package/dist/intermodal/index.js +3 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.d.ts +48 -0
- package/dist/intermodal/parse/classifyEdifactDtmFormat.js +55 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.d.ts +50 -0
- package/dist/intermodal/parse/classifyX12DateTimePeriodFormat.js +57 -0
- package/dist/intermodal/parse/classifyX12TimeCode.d.ts +46 -0
- package/dist/intermodal/parse/classifyX12TimeCode.js +57 -0
- package/dist/intermodal/parse/index.d.ts +18 -0
- package/dist/intermodal/parse/index.js +18 -0
- package/dist/intermodal/parse/parseEdifactDate.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactDate.js +45 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDatePeriod.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTime.d.ts +43 -0
- package/dist/intermodal/parse/parseEdifactDateTime.js +51 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.d.ts +45 -0
- package/dist/intermodal/parse/parseEdifactDateTimePeriod.js +53 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.d.ts +60 -0
- package/dist/intermodal/parse/parseEdifactOffsetDateTime.js +68 -0
- package/dist/intermodal/parse/parseEdifactTime.d.ts +37 -0
- package/dist/intermodal/parse/parseEdifactTime.js +45 -0
- package/dist/intermodal/parse/parseEpcisEvent.d.ts +95 -0
- package/dist/intermodal/parse/parseEpcisEvent.js +102 -0
- package/dist/intermodal/parse/parseX12Date.d.ts +39 -0
- package/dist/intermodal/parse/parseX12Date.js +47 -0
- package/dist/intermodal/parse/parseX12DateAndTime.d.ts +52 -0
- package/dist/intermodal/parse/parseX12DateAndTime.js +61 -0
- package/dist/intermodal/parse/parseX12DateRange.d.ts +44 -0
- package/dist/intermodal/parse/parseX12DateRange.js +52 -0
- package/dist/intermodal/parse/parseX12DateTime.d.ts +45 -0
- package/dist/intermodal/parse/parseX12DateTime.js +53 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.d.ts +46 -0
- package/dist/intermodal/parse/parseX12DateTimeRange.js +54 -0
- package/dist/intermodal/parse/parseX12Time.d.ts +65 -0
- package/dist/intermodal/parse/parseX12Time.js +77 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeOffset.js +110 -0
- package/dist/intermodal/parse/x12TimeCodeZone.d.ts +57 -0
- package/dist/intermodal/parse/x12TimeCodeZone.js +105 -0
- package/dist/intermodal/validate/index.d.ts +18 -0
- package/dist/intermodal/validate/index.js +18 -0
- package/dist/intermodal/validate/isValidEdifactDate.d.ts +26 -0
- package/dist/intermodal/validate/isValidEdifactDate.js +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDatePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidEdifactDateTime.js +32 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactDateTimePeriod.js +30 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.d.ts +39 -0
- package/dist/intermodal/validate/isValidEdifactDtmFormat.js +42 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.d.ts +36 -0
- package/dist/intermodal/validate/isValidEdifactOffsetDateTime.js +38 -0
- package/dist/intermodal/validate/isValidEdifactTime.d.ts +28 -0
- package/dist/intermodal/validate/isValidEdifactTime.js +30 -0
- package/dist/intermodal/validate/isValidEpcisEvent.d.ts +41 -0
- package/dist/intermodal/validate/isValidEpcisEvent.js +58 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.d.ts +33 -0
- package/dist/intermodal/validate/isValidEpcisEventTime.js +48 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.d.ts +30 -0
- package/dist/intermodal/validate/isValidEpcisTimeZoneOffset.js +38 -0
- package/dist/intermodal/validate/isValidX12Date.d.ts +28 -0
- package/dist/intermodal/validate/isValidX12Date.js +30 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.d.ts +32 -0
- package/dist/intermodal/validate/isValidX12DateAndTime.js +35 -0
- package/dist/intermodal/validate/isValidX12DateRange.d.ts +29 -0
- package/dist/intermodal/validate/isValidX12DateRange.js +31 -0
- package/dist/intermodal/validate/isValidX12DateTime.d.ts +30 -0
- package/dist/intermodal/validate/isValidX12DateTime.js +32 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.d.ts +43 -0
- package/dist/intermodal/validate/isValidX12DateTimePeriodFormat.js +46 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.d.ts +31 -0
- package/dist/intermodal/validate/isValidX12DateTimeRange.js +33 -0
- package/dist/intermodal/validate/isValidX12Time.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12Time.js +40 -0
- package/dist/intermodal/validate/isValidX12TimeCode.d.ts +38 -0
- package/dist/intermodal/validate/isValidX12TimeCode.js +41 -0
- package/dist/internal/businessCalendar.js +4 -9
- package/dist/internal/dutyEngine.d.ts +125 -0
- package/dist/internal/dutyEngine.js +1746 -0
- package/dist/internal/dutyLog.d.ts +27 -0
- package/dist/internal/dutyLog.js +47 -0
- package/dist/internal/dutyPeriods.d.ts +135 -0
- package/dist/internal/dutyPeriods.js +369 -0
- package/dist/internal/dutyRules.d.ts +197 -0
- package/dist/internal/dutyRules.js +484 -0
- package/dist/internal/ediDateTimeFields.d.ts +97 -0
- package/dist/internal/ediDateTimeFields.js +288 -0
- package/dist/internal/ediDateTimeWriter.d.ts +92 -0
- package/dist/internal/ediDateTimeWriter.js +298 -0
- package/dist/internal/ediGrammar.d.ts +158 -0
- package/dist/internal/ediGrammar.js +384 -0
- package/dist/internal/englishCalendarNames.d.ts +3 -1
- package/dist/internal/englishCalendarNames.js +3 -1
- package/dist/internal/freeTimeLedger.d.ts +5 -0
- package/dist/internal/freeTimeLedger.js +11 -2
- package/dist/internal/index.d.ts +5 -2
- package/dist/internal/index.js +9 -2
- package/dist/internal/intervalNanoseconds.js +2 -1
- package/dist/internal/isObject.d.ts +13 -6
- package/dist/internal/isObject.js +14 -7
- package/dist/internal/isoYearString.d.ts +21 -0
- package/dist/internal/isoYearString.js +27 -0
- package/dist/internal/maxPieces.js +2 -1
- package/dist/internal/normalizeTimeZone.d.ts +4 -1
- package/dist/internal/normalizeTimeZone.js +4 -1
- package/dist/internal/operatingSchedule.d.ts +13 -4
- package/dist/internal/operatingSchedule.js +146 -58
- package/dist/internal/patternToken.d.ts +10 -3
- package/dist/internal/patternToken.js +31 -12
- package/dist/internal/readDurationUnits.d.ts +34 -0
- package/dist/internal/readDurationUnits.js +78 -0
- package/dist/internal/readSetFields.d.ts +50 -0
- package/dist/internal/readSetFields.js +179 -0
- package/dist/internal/resolveRelativeUnit.d.ts +1 -1
- package/dist/internal/resolveRelativeUnit.js +1 -1
- package/dist/internal/resolveUnixIntervalPair.d.ts +8 -2
- package/dist/internal/resolveUnixIntervalPair.js +11 -7
- package/dist/internal/startOrEndOfUnix.d.ts +2 -1
- package/dist/internal/startOrEndOfUnix.js +9 -6
- package/dist/internal/twoDigitYear.d.ts +19 -0
- package/dist/internal/twoDigitYear.js +22 -0
- package/dist/internal/unixEpochValue.js +3 -2
- package/dist/internal/unixWallClock.d.ts +24 -0
- package/dist/internal/unixWallClock.js +35 -0
- package/dist/internal/utcWallClock.d.ts +20 -0
- package/dist/internal/utcWallClock.js +32 -0
- package/dist/internal/yearWindowStart.d.ts +28 -0
- package/dist/internal/yearWindowStart.js +52 -0
- package/dist/internal/zoneBucketCap.d.ts +18 -0
- package/dist/internal/zoneBucketCap.js +64 -0
- package/dist/internal/zoneFrame.d.ts +180 -0
- package/dist/internal/zoneFrame.js +221 -0
- package/dist/internal/zonedNowUnitValue.d.ts +7 -4
- package/dist/internal/zonedNowUnitValue.js +8 -4
- package/dist/internal/zonedWallClockDifference.js +4 -4
- package/dist/internal/zonedWallClockOperations.d.ts +5 -2
- package/dist/internal/zonedWallClockOperations.js +7 -10
- package/dist/plain/calculate/addDate.js +4 -7
- package/dist/plain/calculate/addDateTime.js +4 -7
- package/dist/plain/calculate/addTime.js +4 -7
- package/dist/plain/calculate/endOfTime.d.ts +1 -1
- package/dist/plain/calculate/setDate.d.ts +20 -3
- package/dist/plain/calculate/setDate.js +27 -7
- package/dist/plain/calculate/setDateTime.d.ts +15 -3
- package/dist/plain/calculate/setDateTime.js +22 -7
- package/dist/plain/calculate/setTime.d.ts +13 -1
- package/dist/plain/calculate/setTime.js +21 -6
- package/dist/plain/calculate/startOfTime.d.ts +1 -1
- package/dist/plain/calculate/subtractDate.js +4 -7
- package/dist/plain/calculate/subtractDateTime.js +4 -7
- package/dist/plain/calculate/subtractTime.js +4 -7
- package/dist/plain/format/formatCalendar.js +2 -1
- package/dist/plain/format/formatRelativeDate.js +2 -1
- package/dist/plain/format/formatRelativeDateTime.js +2 -1
- package/dist/plain/format/formatRelativeTime.js +2 -1
- package/dist/plain/format/{formatSql.d.ts → formatSqlDateTime.d.ts} +7 -7
- package/dist/plain/format/{formatSql.js → formatSqlDateTime.js} +7 -7
- package/dist/plain/format/index.d.ts +1 -1
- package/dist/plain/format/index.js +1 -1
- package/dist/plain/get/getNowUnit.d.ts +2 -0
- package/dist/plain/get/getNowUnit.js +2 -0
- package/dist/plain/get/getYear.d.ts +2 -0
- package/dist/plain/get/getYear.js +4 -3
- package/dist/plain/interval/intervalXorAllDate.js +2 -2
- package/dist/plain/interval/intervalXorAllDateTime.js +2 -2
- package/dist/plain/interval/intervalXorAllTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsDate.js +2 -2
- package/dist/plain/interval/mergeIntervalsDateTime.js +2 -2
- package/dist/plain/interval/mergeIntervalsTime.js +2 -2
- package/dist/plain/parse/index.d.ts +1 -1
- package/dist/plain/parse/index.js +1 -1
- package/dist/plain/parse/parseDateTimeWithPattern.d.ts +16 -3
- package/dist/plain/parse/parseDateTimeWithPattern.js +20 -5
- package/dist/plain/parse/parseDateWithPattern.d.ts +17 -3
- package/dist/plain/parse/parseDateWithPattern.js +21 -5
- package/dist/plain/parse/{parseSql.d.ts → parseSqlDateTime.d.ts} +8 -8
- package/dist/plain/parse/{parseSql.js → parseSqlDateTime.js} +8 -8
- package/dist/plain/parse/parseTimeWithPattern.js +1 -0
- package/dist/plain/parse/parseUnitFromDate.d.ts +3 -0
- package/dist/plain/parse/parseUnitFromDate.js +5 -1
- package/dist/plain/parse/parseUnitFromDateTime.d.ts +3 -0
- package/dist/plain/parse/parseUnitFromDateTime.js +5 -1
- package/dist/plain/parse/parseYearFromDate.d.ts +5 -2
- package/dist/plain/parse/parseYearFromDate.js +7 -3
- package/dist/plain/parse/parseYearFromDateTime.d.ts +4 -2
- package/dist/plain/parse/parseYearFromDateTime.js +6 -3
- package/dist/plain/validate/index.d.ts +1 -0
- package/dist/plain/validate/index.js +1 -0
- package/dist/plain/validate/isValidSqlDateTime.d.ts +33 -0
- package/dist/plain/validate/isValidSqlDateTime.js +36 -0
- package/dist/precision/convert/fromNanoseconds.d.ts +9 -3
- package/dist/precision/convert/fromNanoseconds.js +9 -3
- package/dist/regex/epcis.d.ts +60 -0
- package/dist/regex/epcis.js +60 -0
- package/dist/regex/http-date.d.ts +6 -4
- package/dist/regex/http-date.js +6 -4
- package/dist/regex/index.d.ts +1 -0
- package/dist/regex/index.js +1 -0
- package/dist/regex/rfc-2822.d.ts +2 -0
- package/dist/regex/rfc-2822.js +2 -0
- package/dist/regex/rfc-3339.d.ts +3 -1
- package/dist/regex/rfc-3339.js +3 -1
- package/dist/regex/sql-date-time.d.ts +2 -1
- package/dist/regex/sql-date-time.js +2 -1
- package/dist/regex/time-zone-like.d.ts +3 -2
- package/dist/regex/time-zone-like.js +3 -2
- package/dist/regex/utc-offset.d.ts +2 -1
- package/dist/regex/utc-offset.js +2 -1
- package/dist/transport/calculate/crossingTime.d.ts +6 -1
- package/dist/transport/calculate/crossingTime.js +6 -1
- package/dist/transport/calculate/cutoffAt.d.ts +6 -1
- package/dist/transport/calculate/cutoffAt.js +2 -0
- package/dist/transport/calculate/cutoffSchedule.d.ts +6 -1
- package/dist/transport/calculate/cutoffSchedule.js +2 -0
- package/dist/transport/calculate/dwellTime.d.ts +6 -1
- package/dist/transport/calculate/dwellTime.js +6 -1
- package/dist/transport/calculate/scheduleDelivery.d.ts +13 -5
- package/dist/transport/calculate/scheduleDelivery.js +6 -1
- package/dist/transport/convert/etaAtZone.d.ts +6 -1
- package/dist/transport/convert/etaAtZone.js +6 -1
- package/dist/types/business-calendar.d.ts +5 -4
- package/dist/types/duty.d.ts +777 -0
- package/dist/types/duty.js +0 -0
- package/dist/types/edi.d.ts +407 -0
- package/dist/types/edi.js +0 -0
- package/dist/types/epcis.d.ts +25 -0
- package/dist/types/epcis.js +0 -0
- package/dist/types/exact-duration-unit.d.ts +8 -0
- package/dist/types/exact-duration-unit.js +0 -0
- package/dist/types/free-time-options.d.ts +4 -3
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +5 -0
- package/dist/types/operating-schedule.d.ts +3 -2
- package/dist/types/two-digit-year.d.ts +23 -0
- package/dist/types/two-digit-year.js +0 -0
- package/dist/types/zone-bucket-unit.d.ts +1 -1
- package/dist/unix/calculate/addUnix.d.ts +11 -2
- package/dist/unix/calculate/addUnix.js +14 -11
- package/dist/unix/calculate/diffUnix.d.ts +10 -2
- package/dist/unix/calculate/diffUnix.js +11 -6
- package/dist/unix/calculate/diffUnixAsDuration.d.ts +10 -2
- package/dist/unix/calculate/diffUnixAsDuration.js +10 -5
- package/dist/unix/calculate/endOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/endOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/endOfUnix.d.ts +11 -2
- package/dist/unix/calculate/endOfUnix.js +7 -0
- package/dist/unix/calculate/isBetweenUnix.d.ts +3 -2
- package/dist/unix/calculate/isBetweenUnix.js +3 -3
- package/dist/unix/calculate/roundUnix.d.ts +10 -2
- package/dist/unix/calculate/roundUnix.js +13 -6
- package/dist/unix/calculate/setUnix.d.ts +25 -5
- package/dist/unix/calculate/setUnix.js +33 -12
- package/dist/unix/calculate/startOfQuarterForUnix.d.ts +10 -2
- package/dist/unix/calculate/startOfQuarterForUnix.js +6 -0
- package/dist/unix/calculate/startOfUnix.d.ts +11 -2
- package/dist/unix/calculate/startOfUnix.js +7 -0
- package/dist/unix/calculate/subtractUnix.d.ts +10 -2
- package/dist/unix/calculate/subtractUnix.js +13 -11
- package/dist/unix/compare/areUnixEqualBy.d.ts +11 -2
- package/dist/unix/compare/areUnixEqualBy.js +7 -0
- package/dist/unix/convert/convertUnixToPlainDate.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDate.js +5 -4
- package/dist/unix/convert/convertUnixToPlainDateTime.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainDateTime.js +5 -4
- package/dist/unix/convert/convertUnixToPlainTime.d.ts +5 -2
- package/dist/unix/convert/convertUnixToPlainTime.js +5 -4
- package/dist/unix/convert/convertUnixToZoned.d.ts +5 -1
- package/dist/unix/convert/convertUnixToZoned.js +5 -1
- package/dist/unix/format/formatCalendarUnix.d.ts +6 -2
- package/dist/unix/format/formatCalendarUnix.js +6 -1
- package/dist/unix/format/formatRelativeUnix.d.ts +11 -3
- package/dist/unix/format/formatRelativeUnix.js +13 -5
- package/dist/unix/format/formatUnix.d.ts +7 -2
- package/dist/unix/format/formatUnix.js +4 -0
- package/dist/unix/get/getUnixDay.d.ts +1 -3
- package/dist/unix/get/getUnixDay.js +5 -12
- package/dist/unix/get/getUnixHour.d.ts +1 -3
- package/dist/unix/get/getUnixHour.js +5 -12
- package/dist/unix/get/getUnixMicrosecond.d.ts +1 -3
- package/dist/unix/get/getUnixMicrosecond.js +4 -11
- package/dist/unix/get/getUnixMillisecond.d.ts +1 -3
- package/dist/unix/get/getUnixMillisecond.js +5 -12
- package/dist/unix/get/getUnixMinute.d.ts +1 -3
- package/dist/unix/get/getUnixMinute.js +5 -12
- package/dist/unix/get/getUnixMonth.d.ts +1 -3
- package/dist/unix/get/getUnixMonth.js +5 -12
- package/dist/unix/get/getUnixNanosecond.d.ts +1 -3
- package/dist/unix/get/getUnixNanosecond.js +4 -11
- package/dist/unix/get/getUnixNowUnit.d.ts +2 -0
- package/dist/unix/get/getUnixNowUnit.js +2 -0
- package/dist/unix/get/getUnixSecond.d.ts +1 -3
- package/dist/unix/get/getUnixSecond.js +5 -12
- package/dist/unix/get/getUnixYear.d.ts +3 -3
- package/dist/unix/get/getUnixYear.js +5 -12
- package/dist/unix/interval/intervalCountUnix.d.ts +11 -2
- package/dist/unix/interval/intervalCountUnix.js +7 -0
- package/dist/unix/interval/intervalFromDurationUnix.d.ts +10 -2
- package/dist/unix/interval/intervalFromDurationUnix.js +12 -7
- package/dist/unix/interval/intervalLengthUnix.d.ts +10 -2
- package/dist/unix/interval/intervalLengthUnix.js +6 -0
- package/dist/unix/interval/intervalOverlappingDaysUnix.d.ts +10 -2
- package/dist/unix/interval/intervalOverlappingDaysUnix.js +10 -5
- package/dist/unix/interval/splitIntervalByUnitUnix.d.ts +10 -2
- package/dist/unix/interval/splitIntervalByUnitUnix.js +12 -6
- package/dist/unix/parse/parseDateFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDateFromUnix.js +3 -3
- package/dist/unix/parse/parseDayFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseDayOfWeekFromUnix.js +2 -2
- package/dist/unix/parse/parseHourFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMicrosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMillisecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMinuteFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseMonthFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseNanosecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseSecondFromUnix.d.ts +4 -2
- package/dist/unix/parse/parseTimeFromUnix.d.ts +5 -2
- package/dist/unix/parse/parseTimeFromUnix.js +4 -3
- package/dist/unix/parse/parseUnitFromUnix.d.ts +9 -3
- package/dist/unix/parse/parseUnitFromUnix.js +21 -14
- package/dist/unix/parse/parseWeekFromUnix.d.ts +3 -2
- package/dist/unix/parse/parseWeekFromUnix.js +4 -4
- package/dist/unix/parse/parseYearFromUnix.d.ts +8 -3
- package/dist/unix/parse/parseYearFromUnix.js +4 -1
- package/dist/unix/validate/isValidUnixUnit.d.ts +1 -1
- package/dist/utc/calculate/addUtc.js +4 -7
- package/dist/utc/calculate/setUtc.d.ts +16 -3
- package/dist/utc/calculate/setUtc.js +22 -8
- package/dist/utc/calculate/subtractUtc.js +4 -7
- package/dist/utc/convert/convertUtcToPlainDate.d.ts +8 -2
- package/dist/utc/convert/convertUtcToPlainDate.js +10 -7
- package/dist/utc/convert/convertUtcToPlainDateTime.d.ts +9 -2
- package/dist/utc/convert/convertUtcToPlainDateTime.js +12 -13
- package/dist/utc/convert/convertUtcToPlainTime.d.ts +5 -2
- package/dist/utc/convert/convertUtcToPlainTime.js +7 -6
- package/dist/utc/convert/convertUtcToZoned.d.ts +5 -1
- package/dist/utc/convert/convertUtcToZoned.js +5 -1
- package/dist/utc/format/formatCalendarUtc.d.ts +6 -2
- package/dist/utc/format/formatCalendarUtc.js +6 -1
- package/dist/utc/format/{formatHttp.d.ts → formatHttpDate.d.ts} +7 -7
- package/dist/utc/format/{formatHttp.js → formatHttpDate.js} +7 -7
- package/dist/utc/format/formatRelativeUtc.d.ts +11 -3
- package/dist/utc/format/formatRelativeUtc.js +13 -5
- package/dist/utc/format/formatUtc.d.ts +7 -2
- package/dist/utc/format/formatUtc.js +4 -0
- package/dist/utc/format/index.d.ts +1 -1
- package/dist/utc/format/index.js +1 -1
- package/dist/utc/get/getUtcDay.d.ts +1 -3
- package/dist/utc/get/getUtcDay.js +5 -12
- package/dist/utc/get/getUtcHour.d.ts +1 -3
- package/dist/utc/get/getUtcHour.js +5 -12
- package/dist/utc/get/getUtcMicrosecond.d.ts +1 -3
- package/dist/utc/get/getUtcMicrosecond.js +4 -11
- package/dist/utc/get/getUtcMillisecond.d.ts +1 -3
- package/dist/utc/get/getUtcMillisecond.js +5 -12
- package/dist/utc/get/getUtcMinute.d.ts +1 -3
- package/dist/utc/get/getUtcMinute.js +5 -12
- package/dist/utc/get/getUtcMonth.d.ts +1 -3
- package/dist/utc/get/getUtcMonth.js +5 -12
- package/dist/utc/get/getUtcNanosecond.d.ts +1 -3
- package/dist/utc/get/getUtcNanosecond.js +4 -11
- package/dist/utc/get/getUtcNow.d.ts +1 -3
- package/dist/utc/get/getUtcNow.js +2 -9
- package/dist/utc/get/getUtcNowUnit.d.ts +2 -0
- package/dist/utc/get/getUtcNowUnit.js +2 -0
- package/dist/utc/get/getUtcSecond.d.ts +1 -3
- package/dist/utc/get/getUtcSecond.js +5 -12
- package/dist/utc/get/getUtcYear.d.ts +3 -3
- package/dist/utc/get/getUtcYear.js +5 -12
- package/dist/utc/interval/intervalXorAllUtc.js +2 -2
- package/dist/utc/interval/mergeIntervalsUtc.js +2 -2
- package/dist/utc/parse/index.d.ts +1 -1
- package/dist/utc/parse/index.js +1 -1
- package/dist/utc/parse/parseDateFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseDateFromUtc.js +2 -2
- package/dist/utc/parse/parseDayFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseDayFromUtc.js +2 -2
- package/dist/utc/parse/parseDayOfWeekFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseDayOfWeekFromUtc.js +4 -4
- package/dist/utc/parse/parseHourFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseHourFromUtc.js +2 -2
- package/dist/utc/parse/{parseHttp.d.ts → parseHttpDate.d.ts} +12 -12
- package/dist/utc/parse/{parseHttp.js → parseHttpDate.js} +12 -12
- package/dist/utc/parse/parseMicrosecondFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMicrosecondFromUtc.js +2 -2
- package/dist/utc/parse/parseMillisecondFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMillisecondFromUtc.js +2 -2
- package/dist/utc/parse/parseMinuteFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMinuteFromUtc.js +2 -2
- package/dist/utc/parse/parseMonthFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseMonthFromUtc.js +2 -2
- package/dist/utc/parse/parseNanosecondFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseNanosecondFromUtc.js +2 -2
- package/dist/utc/parse/parseSecondFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseSecondFromUtc.js +2 -2
- package/dist/utc/parse/parseTimeFromUtc.d.ts +5 -2
- package/dist/utc/parse/parseTimeFromUtc.js +5 -4
- package/dist/utc/parse/parseUnitFromUtc.d.ts +10 -3
- package/dist/utc/parse/parseUnitFromUtc.js +11 -5
- package/dist/utc/parse/parseWeekFromUtc.d.ts +4 -2
- package/dist/utc/parse/parseWeekFromUtc.js +4 -4
- package/dist/utc/parse/parseYearFromUtc.d.ts +8 -4
- package/dist/utc/parse/parseYearFromUtc.js +8 -5
- package/dist/utc/validate/index.d.ts +2 -0
- package/dist/utc/validate/index.js +2 -0
- package/dist/utc/validate/isValidHttpDate.d.ts +35 -0
- package/dist/utc/validate/isValidHttpDate.js +38 -0
- package/dist/utc/validate/isValidUtc.d.ts +4 -0
- package/dist/utc/validate/isValidUtc.js +4 -0
- package/dist/utc/validate/isValidUtcTimestamp.d.ts +43 -0
- package/dist/utc/validate/isValidUtcTimestamp.js +48 -0
- package/dist/zoned/calculate/addZoned.js +4 -7
- package/dist/zoned/calculate/setZoned.d.ts +19 -5
- package/dist/zoned/calculate/setZoned.js +26 -9
- package/dist/zoned/calculate/subtractZoned.js +4 -7
- package/dist/zoned/convert/convertPlainDateTimeToZoned.d.ts +4 -1
- package/dist/zoned/convert/convertPlainDateTimeToZoned.js +4 -1
- package/dist/zoned/convert/convertZonedToZoned.d.ts +5 -1
- package/dist/zoned/convert/convertZonedToZoned.js +5 -1
- package/dist/zoned/format/formatCalendarZoned.js +2 -1
- package/dist/zoned/format/formatRelativeZoned.js +2 -1
- package/dist/zoned/format/formatTimeZoneName.d.ts +5 -1
- package/dist/zoned/format/formatTimeZoneName.js +5 -1
- package/dist/zoned/get/getDstTransitions.d.ts +5 -3
- package/dist/zoned/get/getDstTransitions.js +12 -7
- package/dist/zoned/get/getSystemTimeZone.d.ts +3 -1
- package/dist/zoned/get/getSystemTimeZone.js +5 -2
- package/dist/zoned/get/getTimeZoneOffset.d.ts +10 -2
- package/dist/zoned/get/getTimeZoneOffset.js +18 -5
- package/dist/zoned/get/getZonedDay.d.ts +2 -1
- package/dist/zoned/get/getZonedDay.js +6 -7
- package/dist/zoned/get/getZonedDayOfWeek.d.ts +2 -1
- package/dist/zoned/get/getZonedDayOfWeek.js +6 -5
- package/dist/zoned/get/getZonedHour.d.ts +2 -1
- package/dist/zoned/get/getZonedHour.js +6 -7
- package/dist/zoned/get/getZonedMicrosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMicrosecond.js +6 -5
- package/dist/zoned/get/getZonedMillisecond.d.ts +2 -1
- package/dist/zoned/get/getZonedMillisecond.js +6 -7
- package/dist/zoned/get/getZonedMinute.d.ts +2 -1
- package/dist/zoned/get/getZonedMinute.js +6 -7
- package/dist/zoned/get/getZonedMonth.d.ts +2 -1
- package/dist/zoned/get/getZonedMonth.js +6 -7
- package/dist/zoned/get/getZonedNanosecond.d.ts +2 -1
- package/dist/zoned/get/getZonedNanosecond.js +6 -5
- package/dist/zoned/get/getZonedNow.d.ts +5 -1
- package/dist/zoned/get/getZonedNow.js +5 -1
- package/dist/zoned/get/getZonedNowUnit.d.ts +6 -3
- package/dist/zoned/get/getZonedNowUnit.js +10 -7
- package/dist/zoned/get/getZonedSecond.d.ts +2 -1
- package/dist/zoned/get/getZonedSecond.js +6 -7
- package/dist/zoned/get/getZonedToday.d.ts +2 -1
- package/dist/zoned/get/getZonedToday.js +6 -5
- package/dist/zoned/get/getZonedWeekOfYear.d.ts +2 -1
- package/dist/zoned/get/getZonedWeekOfYear.js +6 -5
- package/dist/zoned/get/getZonedYear.d.ts +4 -1
- package/dist/zoned/get/getZonedYear.js +9 -7
- package/dist/zoned/interval/intervalXorAllZoned.js +2 -2
- package/dist/zoned/interval/mergeIntervalsZoned.js +2 -2
- package/dist/zoned/parse/parseUnitFromZoned.d.ts +4 -1
- package/dist/zoned/parse/parseUnitFromZoned.js +5 -1
- package/dist/zoned/parse/parseYearFromZoned.d.ts +4 -2
- package/dist/zoned/parse/parseYearFromZoned.js +6 -3
- package/dist/zoned/validate/hasDaylightSaving.d.ts +4 -2
- package/dist/zoned/validate/hasDaylightSaving.js +13 -7
- package/dist/zoned/validate/index.d.ts +2 -0
- package/dist/zoned/validate/index.js +2 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.d.ts +32 -0
- package/dist/zoned/validate/isValidRfc2822DateTime.js +35 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.d.ts +31 -0
- package/dist/zoned/validate/isValidRfc3339DateTime.js +34 -0
- package/dist/zoned/validate/isValidTimeZone.d.ts +5 -1
- package/dist/zoned/validate/isValidTimeZone.js +6 -2
- package/package.json +50 -1
- package/skills/gmt-arithmetic/SKILL.md +99 -12
- package/skills/gmt-basics/SKILL.md +57 -15
- package/skills/gmt-integration/SKILL.md +24 -9
- package/skills/gmt-timezone/SKILL.md +134 -29
- package/dist/internal/unixZonedDateTime.d.ts +0 -22
- package/dist/internal/unixZonedDateTime.js +0 -32
- package/dist/internal/utcZonedDateTime.d.ts +0 -19
- package/dist/internal/utcZonedDateTime.js +0 -31
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { frameWallClock, normalizeZoneFrame } from "../../internal/zoneFrame.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain date string in the format "YYYY-MM-DD".
|
|
8
8
|
*
|
|
9
9
|
* - Converts to the `timeZone` option's zone before extracting the date.
|
|
10
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
11
|
+
* Temporal writes it, so the result is always a string `isValidDate` accepts.
|
|
10
12
|
* - Returns "" for invalid input.
|
|
11
13
|
*
|
|
12
14
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
@@ -16,23 +18,24 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
16
18
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z") // "2024-02-29"
|
|
17
19
|
* @example convertUtcToPlainDate("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "2024-02-28"
|
|
18
20
|
* @example convertUtcToPlainDate("invalid") // ""
|
|
21
|
+
* @example convertUtcToPlainDate("+010000-01-01T00:00:00Z") // "+010000-01-01" (a year past 9999 has a sign and six digits)
|
|
22
|
+
* @example convertUtcToPlainDate("1970-01-01T00:30:00Z", { timeZone: "-00:44:30" }) // "1969-12-31" (a stored offset with seconds)
|
|
19
23
|
*/
|
|
20
24
|
export function convertUtcToPlainDate(value, options) {
|
|
21
25
|
try {
|
|
22
26
|
if (!isOptionsArgument(options)) {
|
|
23
27
|
return "";
|
|
24
28
|
}
|
|
25
|
-
const
|
|
26
|
-
if (
|
|
29
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
30
|
+
if (frame === null)
|
|
27
31
|
return "";
|
|
28
32
|
if (!isValidUtc(value))
|
|
29
33
|
return "";
|
|
30
34
|
try {
|
|
31
35
|
const instant = Temporal.Instant.from(value);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
.padStart(2, "0")}-${zonedDateTime.day.toString().padStart(2, "0")}`;
|
|
36
|
+
const wallClock = frameWallClock(instant, frame);
|
|
37
|
+
// Temporal writes the date, so a year outside 0000 to 9999 gets its sign and six digits.
|
|
38
|
+
return wallClock.toPlainDate().toString();
|
|
36
39
|
}
|
|
37
40
|
catch {
|
|
38
41
|
return "";
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* Convert a UTC datetime string to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
3
3
|
*
|
|
4
4
|
* - Converts to the `timeZone` option's zone before extracting the datetime.
|
|
5
|
+
* - The time is cut to the second: a fraction of a second in `value` is dropped.
|
|
6
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
7
|
+
* Temporal writes it, so the result is always a string `isValidDateTime` accepts.
|
|
5
8
|
* - Returns "" for invalid input.
|
|
6
9
|
*
|
|
7
10
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
@@ -11,11 +14,15 @@
|
|
|
11
14
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z") // "2024-02-29T00:00:00"
|
|
12
15
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "2024-02-28T19:00:00"
|
|
13
16
|
* @example convertUtcToPlainDateTime("invalid") // ""
|
|
17
|
+
* @example convertUtcToPlainDateTime("+010000-01-01T00:00:00Z") // "+010000-01-01T00:00:00" (a year past 9999 has a sign and six digits)
|
|
18
|
+
* @example convertUtcToPlainDateTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "1970-01-01T12:00:00" (a stored offset with seconds)
|
|
14
19
|
*/
|
|
15
20
|
export declare function convertUtcToPlainDateTime(value: string, options?: {
|
|
16
21
|
/**
|
|
17
|
-
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset
|
|
18
|
-
*
|
|
22
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
|
|
23
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
24
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
25
|
+
* `""`.
|
|
19
26
|
*
|
|
20
27
|
* @defaultValue `"UTC"`
|
|
21
28
|
*/
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { frameWallClock, normalizeZoneFrame } from "../../internal/zoneFrame.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
7
7
|
* Convert a UTC datetime string to a plain datetime string in the format "YYYY-MM-DDTHH:mm:ss".
|
|
8
8
|
*
|
|
9
9
|
* - Converts to the `timeZone` option's zone before extracting the datetime.
|
|
10
|
+
* - The time is cut to the second: a fraction of a second in `value` is dropped.
|
|
11
|
+
* - A year outside 0000–9999 is written with a sign and six digits (`+010000`, `-000005`), as
|
|
12
|
+
* Temporal writes it, so the result is always a string `isValidDateTime` accepts.
|
|
10
13
|
* - Returns "" for invalid input.
|
|
11
14
|
*
|
|
12
15
|
* @param value UTC datetime string (e.g., "2024-02-29T00:00:00Z")
|
|
@@ -16,29 +19,25 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
16
19
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z") // "2024-02-29T00:00:00"
|
|
17
20
|
* @example convertUtcToPlainDateTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "2024-02-28T19:00:00"
|
|
18
21
|
* @example convertUtcToPlainDateTime("invalid") // ""
|
|
22
|
+
* @example convertUtcToPlainDateTime("+010000-01-01T00:00:00Z") // "+010000-01-01T00:00:00" (a year past 9999 has a sign and six digits)
|
|
23
|
+
* @example convertUtcToPlainDateTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "1970-01-01T12:00:00" (a stored offset with seconds)
|
|
19
24
|
*/
|
|
20
25
|
export function convertUtcToPlainDateTime(value, options) {
|
|
21
26
|
try {
|
|
22
27
|
if (!isOptionsArgument(options)) {
|
|
23
28
|
return "";
|
|
24
29
|
}
|
|
25
|
-
const
|
|
26
|
-
if (
|
|
30
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
31
|
+
if (frame === null)
|
|
27
32
|
return "";
|
|
28
33
|
if (!isValidUtc(value))
|
|
29
34
|
return "";
|
|
30
35
|
try {
|
|
31
36
|
const instant = Temporal.Instant.from(value);
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
.toString()
|
|
37
|
-
.padStart(2, "0")}T${zonedDateTime.hour
|
|
38
|
-
.toString()
|
|
39
|
-
.padStart(2, "0")}:${zonedDateTime.minute
|
|
40
|
-
.toString()
|
|
41
|
-
.padStart(2, "0")}:${zonedDateTime.second.toString().padStart(2, "0")}`;
|
|
37
|
+
const wallClock = frameWallClock(instant, frame);
|
|
38
|
+
// Temporal writes the date-time, so a year outside 0000 to 9999 gets its sign and six
|
|
39
|
+
// digits. `smallestUnit: "second"` always prints the seconds and cuts off any fraction.
|
|
40
|
+
return wallClock.toString({ smallestUnit: "second" });
|
|
42
41
|
}
|
|
43
42
|
catch {
|
|
44
43
|
return "";
|
|
@@ -11,11 +11,14 @@
|
|
|
11
11
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z") // "00:00:00"
|
|
12
12
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "19:00:00"
|
|
13
13
|
* @example convertUtcToPlainTime("invalid") // ""
|
|
14
|
+
* @example convertUtcToPlainTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "12:00:00" (a stored offset with seconds)
|
|
14
15
|
*/
|
|
15
16
|
export declare function convertUtcToPlainTime(value: string, options?: {
|
|
16
17
|
/**
|
|
17
|
-
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset
|
|
18
|
-
*
|
|
18
|
+
* The time zone the wall-clock fields are read in: an IANA name, a UTC offset (a time zone
|
|
19
|
+
* identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
20
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
21
|
+
* `""`.
|
|
19
22
|
*
|
|
20
23
|
* @defaultValue `"UTC"`
|
|
21
24
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
-
import {
|
|
3
|
+
import { frameWallClock, normalizeZoneFrame } from "../../internal/zoneFrame.js";
|
|
4
4
|
import { isValidUtc } from "../validate/index.js";
|
|
5
5
|
import { isOptionsArgument } from "../../internal/isObject.js";
|
|
6
6
|
/**
|
|
@@ -16,23 +16,24 @@ import { isOptionsArgument } from "../../internal/isObject.js";
|
|
|
16
16
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z") // "00:00:00"
|
|
17
17
|
* @example convertUtcToPlainTime("2024-02-29T00:00:00Z", { timeZone: "America/New_York" }) // "19:00:00"
|
|
18
18
|
* @example convertUtcToPlainTime("invalid") // ""
|
|
19
|
+
* @example convertUtcToPlainTime("1970-01-01T12:44:30Z", { timeZone: "-00:44:30" }) // "12:00:00" (a stored offset with seconds)
|
|
19
20
|
*/
|
|
20
21
|
export function convertUtcToPlainTime(value, options) {
|
|
21
22
|
try {
|
|
22
23
|
if (!isOptionsArgument(options)) {
|
|
23
24
|
return "";
|
|
24
25
|
}
|
|
25
|
-
const
|
|
26
|
-
if (
|
|
26
|
+
const frame = normalizeZoneFrame(options?.timeZone);
|
|
27
|
+
if (frame === null)
|
|
27
28
|
return "";
|
|
28
29
|
if (!isValidUtc(value))
|
|
29
30
|
return "";
|
|
30
31
|
try {
|
|
31
32
|
const instant = Temporal.Instant.from(value);
|
|
32
|
-
const
|
|
33
|
-
return `${
|
|
33
|
+
const wallClock = frameWallClock(instant, frame);
|
|
34
|
+
return `${wallClock.hour.toString().padStart(2, "0")}:${wallClock.minute
|
|
34
35
|
.toString()
|
|
35
|
-
.padStart(2, "0")}:${
|
|
36
|
+
.padStart(2, "0")}:${wallClock.second.toString().padStart(2, "0")}`;
|
|
36
37
|
}
|
|
37
38
|
catch {
|
|
38
39
|
return "";
|
|
@@ -4,9 +4,13 @@
|
|
|
4
4
|
* - Uses Temporal.Instant.from to parse, converts to specified timezone.
|
|
5
5
|
* - Validates both UTC input and timezone.
|
|
6
6
|
* - Returns "" for invalid input.
|
|
7
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
|
|
8
|
+
* 9557 §4.1), so the result could not name it. Pass the IANA name, or call
|
|
9
|
+
* `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
|
|
10
|
+
* bracket.
|
|
7
11
|
*
|
|
8
12
|
* @param value UTC Instant string
|
|
9
|
-
* @param timeZone IANA name or UTC offset
|
|
13
|
+
* @param timeZone IANA name or a UTC offset to the minute (what `isValidTimeZone` accepts)
|
|
10
14
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
11
15
|
*
|
|
12
16
|
* @example convertUtcToZoned("2024-02-29T00:00:00Z", "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -7,9 +7,13 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
7
7
|
* - Uses Temporal.Instant.from to parse, converts to specified timezone.
|
|
8
8
|
* - Validates both UTC input and timezone.
|
|
9
9
|
* - Returns "" for invalid input.
|
|
10
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. A written zone cannot carry seconds (RFC
|
|
11
|
+
* 9557 §4.1), so the result could not name it. Pass the IANA name, or call
|
|
12
|
+
* `fromOffsetInstant({ instant, offset })` for the local time with its full offset and no
|
|
13
|
+
* bracket.
|
|
10
14
|
*
|
|
11
15
|
* @param value UTC Instant string
|
|
12
|
-
* @param timeZone IANA name or UTC offset
|
|
16
|
+
* @param timeZone IANA name or a UTC offset to the minute (what `isValidTimeZone` accepts)
|
|
13
17
|
* @returns zoned ISO 8601 string or "" on invalid
|
|
14
18
|
*
|
|
15
19
|
* @example convertUtcToZoned("2024-02-29T00:00:00Z", "America/New_York") // "2024-02-28T19:00:00-05:00[America/New_York]"
|
|
@@ -6,8 +6,8 @@ import type { CalendarOptions } from "../../types/index.js";
|
|
|
6
6
|
export interface FormatCalendarUtcOptions extends CalendarOptions {
|
|
7
7
|
/**
|
|
8
8
|
* The time zone used for both the calendar-day comparison and the rendered clock time: an IANA
|
|
9
|
-
* name, a UTC offset, or `"local"` for the system
|
|
10
|
-
* ECMA-402 throws RangeError for it.
|
|
9
|
+
* name, a UTC offset to the minute (what `isValidTimeZone` accepts), or `"local"` for the system
|
|
10
|
+
* time zone. An unknown zone returns `""`, as ECMA-402 throws RangeError for it.
|
|
11
11
|
*
|
|
12
12
|
* @defaultValue `"UTC"`
|
|
13
13
|
*/
|
|
@@ -29,6 +29,10 @@ export interface FormatCalendarUtcOptions extends CalendarOptions {
|
|
|
29
29
|
*
|
|
30
30
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
31
31
|
* rejects it.
|
|
32
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. `Intl.DateTimeFormat` takes a time zone
|
|
33
|
+
* identifier only: constructing one with an offset that has seconds throws (ECMA-402, the
|
|
34
|
+
* `DateTimeFormat` construction step "If parseResult contains more than one MinuteSecond Parse
|
|
35
|
+
* Node, throw a RangeError exception"). Pass the IANA name.
|
|
32
36
|
*
|
|
33
37
|
* @param value UTC ISO string to format
|
|
34
38
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
@@ -4,6 +4,7 @@ import { normalizeTimeZone } from "../../internal/normalizeTimeZone.js";
|
|
|
4
4
|
import { toInstantFromUtc, toReferenceInstantFromUtc, } from "../../internal/toInstantFromUtc.js";
|
|
5
5
|
import { isValidUtc } from "../validate/index.js";
|
|
6
6
|
import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
7
|
+
import { isObject } from "../../internal/isObject.js";
|
|
7
8
|
/**
|
|
8
9
|
* Format a UTC ISO string as a relative day label plus time-of-day, e.g.
|
|
9
10
|
* "Tomorrow at 2:30 PM" — the UTC counterpart of `formatCalendar`. See that
|
|
@@ -12,6 +13,10 @@ import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
|
12
13
|
*
|
|
13
14
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
14
15
|
* rejects it.
|
|
16
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. `Intl.DateTimeFormat` takes a time zone
|
|
17
|
+
* identifier only: constructing one with an offset that has seconds throws (ECMA-402, the
|
|
18
|
+
* `DateTimeFormat` construction step "If parseResult contains more than one MinuteSecond Parse
|
|
19
|
+
* Node, throw a RangeError exception"). Pass the IANA name.
|
|
15
20
|
*
|
|
16
21
|
* @param value UTC ISO string to format
|
|
17
22
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
@@ -28,7 +33,7 @@ export function formatCalendarUtc(value, locale, options = {}) {
|
|
|
28
33
|
try {
|
|
29
34
|
// Temporal GetOptionsObject: undefined is defaults (the parameter default); anything else that is
|
|
30
35
|
// not an object, including null, is a TypeError.
|
|
31
|
-
if (options
|
|
36
|
+
if (!isObject(options))
|
|
32
37
|
return "";
|
|
33
38
|
if (!isValidUtc(value))
|
|
34
39
|
return "";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Format a UTC ISO 8601 datetime string as an
|
|
3
|
-
*
|
|
2
|
+
* Format a UTC ISO 8601 datetime string as an HTTP header date — the RFC 9110
|
|
3
|
+
* IMF-fixdate that headers like `Last-Modified`/`Date`/`Expires` require.
|
|
4
4
|
*
|
|
5
5
|
* - **Fixed grammar, not a display format.** RFC 9110 mandates English
|
|
6
6
|
* weekday/month abbreviations and a literal `GMT` suffix regardless of
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
* @param value UTC ISO 8601 datetime string (e.g. "2024-03-15T14:30:00Z")
|
|
20
20
|
* @returns RFC 9110 IMF-fixdate string, or "" on invalid input or a year outside 0000–9999
|
|
21
21
|
*
|
|
22
|
-
* @example
|
|
23
|
-
* @example
|
|
24
|
-
* @example
|
|
22
|
+
* @example formatHttpDate("2024-03-15T14:30:00Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
23
|
+
* @example formatHttpDate("2024-03-15T14:30:00.500Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
24
|
+
* @example formatHttpDate("-000001-06-15T12:00:00Z") // ""
|
|
25
25
|
* @example Temporal.Instant.from("-000001-06-15T12:00:00Z").toString() // "-000001-06-15T12:00:00Z"
|
|
26
|
-
* @example
|
|
26
|
+
* @example formatHttpDate("invalid") // ""
|
|
27
27
|
*/
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function formatHttpDate(value: string): string;
|
|
@@ -2,8 +2,8 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
2
2
|
import { englishDateTimeStem } from "../../internal/englishCalendarNames.js";
|
|
3
3
|
import { isValidUtc } from "../validate/index.js";
|
|
4
4
|
/**
|
|
5
|
-
* Format a UTC ISO 8601 datetime string as an
|
|
6
|
-
*
|
|
5
|
+
* Format a UTC ISO 8601 datetime string as an HTTP header date — the RFC 9110
|
|
6
|
+
* IMF-fixdate that headers like `Last-Modified`/`Date`/`Expires` require.
|
|
7
7
|
*
|
|
8
8
|
* - **Fixed grammar, not a display format.** RFC 9110 mandates English
|
|
9
9
|
* weekday/month abbreviations and a literal `GMT` suffix regardless of
|
|
@@ -22,13 +22,13 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
22
22
|
* @param value UTC ISO 8601 datetime string (e.g. "2024-03-15T14:30:00Z")
|
|
23
23
|
* @returns RFC 9110 IMF-fixdate string, or "" on invalid input or a year outside 0000–9999
|
|
24
24
|
*
|
|
25
|
-
* @example
|
|
26
|
-
* @example
|
|
27
|
-
* @example
|
|
25
|
+
* @example formatHttpDate("2024-03-15T14:30:00Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
26
|
+
* @example formatHttpDate("2024-03-15T14:30:00.500Z") // "Fri, 15 Mar 2024 14:30:00 GMT"
|
|
27
|
+
* @example formatHttpDate("-000001-06-15T12:00:00Z") // ""
|
|
28
28
|
* @example Temporal.Instant.from("-000001-06-15T12:00:00Z").toString() // "-000001-06-15T12:00:00Z"
|
|
29
|
-
* @example
|
|
29
|
+
* @example formatHttpDate("invalid") // ""
|
|
30
30
|
*/
|
|
31
|
-
export function
|
|
31
|
+
export function formatHttpDate(value) {
|
|
32
32
|
if (!isValidUtc(value))
|
|
33
33
|
return "";
|
|
34
34
|
try {
|
|
@@ -20,9 +20,10 @@ export interface FormatRelativeUtcOptions extends RelativeTimeFormatOptions {
|
|
|
20
20
|
*/
|
|
21
21
|
reference?: string;
|
|
22
22
|
/**
|
|
23
|
-
* The time zone that anchors a calendar unit (week, month or year): an IANA name, a UTC offset
|
|
24
|
-
*
|
|
25
|
-
*
|
|
23
|
+
* The time zone that anchors a calendar unit (week, month or year): an IANA name, a UTC offset (a
|
|
24
|
+
* time zone identifier such as `+05:30`, `+0530` or `-08`, or a stored offset `±HH:MM[:SS]`, what
|
|
25
|
+
* `getTimeZoneOffset` returns), or `"local"` for the system time zone. An unknown zone returns
|
|
26
|
+
* `""` whatever the unit.
|
|
26
27
|
*
|
|
27
28
|
* @defaultValue `"UTC"`
|
|
28
29
|
*/
|
|
@@ -39,6 +40,12 @@ export interface FormatRelativeUtcOptions extends RelativeTimeFormatOptions {
|
|
|
39
40
|
* other value returns `""`.
|
|
40
41
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
41
42
|
* rejects it.
|
|
43
|
+
* - **Limit at an offset with seconds.** A month or a year is measured from `reference`, placed in
|
|
44
|
+
* the offset's whole-minute zone and moved by its seconds, and the moved instant must be inside
|
|
45
|
+
* Temporal's range. So when one is measured and `reference` is within the offset's seconds (under
|
|
46
|
+
* a minute) of the last instant Temporal supports (`+275760-09-13T00:00:00Z`) for an offset east
|
|
47
|
+
* of UTC, or of the first (`-271821-04-20T00:00:00Z`) for one west, this returns `""`. An offset
|
|
48
|
+
* to the minute has no such limit.
|
|
42
49
|
*
|
|
43
50
|
* @param value UTC ISO string to format
|
|
44
51
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
@@ -51,5 +58,6 @@ export interface FormatRelativeUtcOptions extends RelativeTimeFormatOptions {
|
|
|
51
58
|
* @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", null as never) // ""
|
|
52
59
|
* @example formatRelativeUtc("not-a-date") // ""
|
|
53
60
|
* @example formatRelativeUtc("2024-03-15T11:30:00Z", ["fr-FR", "en-US"], { reference: "2024-03-15T12:00:00Z" }) // "il y a 30 minutes"
|
|
61
|
+
* @example formatRelativeUtc("1970-01-03T12:00:00Z", "en-US", { reference: "1970-01-01T12:00:00Z", timeZone: "-00:44:30" }) // "in 2 days" (a stored offset with seconds)
|
|
54
62
|
*/
|
|
55
63
|
export declare function formatRelativeUtc(value: string, locale?: string | string[], options?: FormatRelativeUtcOptions): string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// fallow-ignore-file code-duplication -- sibling variant keeps its own guard, parse and try/catch, by design
|
|
2
2
|
import { formatRelativeDuration } from "../../internal/formatRelativeDuration.js";
|
|
3
|
-
import {
|
|
3
|
+
import { frameZoned, normalizeZoneFrame } from "../../internal/zoneFrame.js";
|
|
4
4
|
import { toInstantFromUtc, toReferenceInstantFromUtc, } from "../../internal/toInstantFromUtc.js";
|
|
5
5
|
import { durationTotal } from "../../internal/zonedWallClockDifference.js";
|
|
6
6
|
import { isValidUtc } from "../validate/index.js";
|
|
7
|
+
import { isObject } from "../../internal/isObject.js";
|
|
7
8
|
/**
|
|
8
9
|
* Format the relative time between a UTC ISO string and a reference instant.
|
|
9
10
|
*
|
|
@@ -15,6 +16,12 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
15
16
|
* other value returns `""`.
|
|
16
17
|
* - `options` must be an object or omitted: `null` returns `""`, as Temporal's GetOptionsObject
|
|
17
18
|
* rejects it.
|
|
19
|
+
* - **Limit at an offset with seconds.** A month or a year is measured from `reference`, placed in
|
|
20
|
+
* the offset's whole-minute zone and moved by its seconds, and the moved instant must be inside
|
|
21
|
+
* Temporal's range. So when one is measured and `reference` is within the offset's seconds (under
|
|
22
|
+
* a minute) of the last instant Temporal supports (`+275760-09-13T00:00:00Z`) for an offset east
|
|
23
|
+
* of UTC, or of the first (`-271821-04-20T00:00:00Z`) for one west, this returns `""`. An offset
|
|
24
|
+
* to the minute has no such limit.
|
|
18
25
|
*
|
|
19
26
|
* @param value UTC ISO string to format
|
|
20
27
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
@@ -27,17 +34,18 @@ import { isValidUtc } from "../validate/index.js";
|
|
|
27
34
|
* @example formatRelativeUtc("2026-01-15T14:30:45Z", "en-US", null as never) // ""
|
|
28
35
|
* @example formatRelativeUtc("not-a-date") // ""
|
|
29
36
|
* @example formatRelativeUtc("2024-03-15T11:30:00Z", ["fr-FR", "en-US"], { reference: "2024-03-15T12:00:00Z" }) // "il y a 30 minutes"
|
|
37
|
+
* @example formatRelativeUtc("1970-01-03T12:00:00Z", "en-US", { reference: "1970-01-01T12:00:00Z", timeZone: "-00:44:30" }) // "in 2 days" (a stored offset with seconds)
|
|
30
38
|
*/
|
|
31
39
|
export function formatRelativeUtc(value, locale, options = {}) {
|
|
32
40
|
try {
|
|
33
41
|
// Temporal GetOptionsObject: undefined is defaults (the parameter default); anything else that is
|
|
34
42
|
// not an object, including null, is a TypeError.
|
|
35
|
-
if (options
|
|
43
|
+
if (!isObject(options))
|
|
36
44
|
return "";
|
|
37
45
|
if (!isValidUtc(value))
|
|
38
46
|
return "";
|
|
39
|
-
const
|
|
40
|
-
if (
|
|
47
|
+
const frame = normalizeZoneFrame(options.timeZone);
|
|
48
|
+
if (frame === null)
|
|
41
49
|
return "";
|
|
42
50
|
// Each option is read once (GetOption).
|
|
43
51
|
const referenceOption = options.reference;
|
|
@@ -52,7 +60,7 @@ export function formatRelativeUtc(value, locale, options = {}) {
|
|
|
52
60
|
try {
|
|
53
61
|
const diff = target.since(reference);
|
|
54
62
|
// Only a calendrical unit (month, year) reads the anchor, so the zone is applied lazily.
|
|
55
|
-
return formatRelativeDuration(diff, locale, options, (unit) => durationTotal(diff, unit, reference
|
|
63
|
+
return formatRelativeDuration(diff, locale, options, (unit) => durationTotal(diff, unit, frameZoned(reference, frame)));
|
|
56
64
|
}
|
|
57
65
|
catch {
|
|
58
66
|
return "";
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export interface FormatUtcOptions extends Intl.DateTimeFormatOptions {
|
|
11
11
|
/**
|
|
12
|
-
* The time zone the value is rendered in: an IANA name, a UTC offset
|
|
13
|
-
* time zone. An unknown zone returns
|
|
12
|
+
* The time zone the value is rendered in: an IANA name, a UTC offset to the minute (what
|
|
13
|
+
* `isValidTimeZone` accepts), or `"local"` for the system time zone. An unknown zone returns
|
|
14
|
+
* `""`, as ECMA-402 throws RangeError for it.
|
|
14
15
|
*
|
|
15
16
|
* @defaultValue `"UTC"`
|
|
16
17
|
*/
|
|
@@ -35,6 +36,10 @@ export interface FormatUtcOptions extends Intl.DateTimeFormatOptions {
|
|
|
35
36
|
* the `dateStyle` width, `era` alone dropped the time, and `timeZoneName` alone without
|
|
36
37
|
* `includeTimeZoneName` returned `""`. Pass the fields the old text showed to keep it.
|
|
37
38
|
* - `options` null returns `""`, as ECMA-402's CoerceOptionsToObject rejects it.
|
|
39
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. `Intl.DateTimeFormat` takes a time zone
|
|
40
|
+
* identifier only: constructing one with an offset that has seconds throws (ECMA-402, the
|
|
41
|
+
* `DateTimeFormat` construction step "If parseResult contains more than one MinuteSecond Parse
|
|
42
|
+
* Node, throw a RangeError exception"). Pass the IANA name.
|
|
38
43
|
*
|
|
39
44
|
* @param value UTC ISO string to format
|
|
40
45
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
|
@@ -17,6 +17,10 @@ import { optionOrDefault } from "../../internal/optionOrDefault.js";
|
|
|
17
17
|
* the `dateStyle` width, `era` alone dropped the time, and `timeZoneName` alone without
|
|
18
18
|
* `includeTimeZoneName` returned `""`. Pass the fields the old text showed to keep it.
|
|
19
19
|
* - `options` null returns `""`, as ECMA-402's CoerceOptionsToObject rejects it.
|
|
20
|
+
* - An offset with seconds (`-00:44:30`) returns `""`. `Intl.DateTimeFormat` takes a time zone
|
|
21
|
+
* identifier only: constructing one with an offset that has seconds throws (ECMA-402, the
|
|
22
|
+
* `DateTimeFormat` construction step "If parseResult contains more than one MinuteSecond Parse
|
|
23
|
+
* Node, throw a RangeError exception"). Pass the IANA name.
|
|
20
24
|
*
|
|
21
25
|
* @param value UTC ISO string to format
|
|
22
26
|
* @param locale optional: BCP 47 locale tag, or a preference list of tags (ECMA-402)
|
package/dist/utc/format/index.js
CHANGED
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 2 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current day string (zero-padded to 2 digits)
|
|
7
|
+
* @returns current day string (zero-padded to 2 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUtcDay() // "29"
|
|
11
|
-
* @example getUtcDay() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUtcDay(): string;
|
|
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 2 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current day string (zero-padded to 2 digits)
|
|
8
|
+
* @returns current day string (zero-padded to 2 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUtcDay() // "29"
|
|
12
|
-
* @example getUtcDay() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUtcDay() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.padStart(2, "0");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
13
|
+
return Temporal.Now.instant()
|
|
14
|
+
.toZonedDateTimeISO("UTC")
|
|
15
|
+
.day.toString()
|
|
16
|
+
.padStart(2, "0");
|
|
24
17
|
}
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 2 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current hour string (zero-padded to 2 digits)
|
|
7
|
+
* @returns current hour string (zero-padded to 2 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUtcHour() // "00"
|
|
11
|
-
* @example getUtcHour() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUtcHour(): string;
|
|
@@ -4,21 +4,14 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 2 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current hour string (zero-padded to 2 digits)
|
|
8
|
+
* @returns current hour string (zero-padded to 2 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUtcHour() // "00"
|
|
12
|
-
* @example getUtcHour() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUtcHour() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.padStart(2, "0");
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return "";
|
|
23
|
-
}
|
|
13
|
+
return Temporal.Now.instant()
|
|
14
|
+
.toZonedDateTimeISO("UTC")
|
|
15
|
+
.hour.toString()
|
|
16
|
+
.padStart(2, "0");
|
|
24
17
|
}
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 3 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current microsecond string (zero-padded to 3 digits)
|
|
7
|
+
* @returns current microsecond string (zero-padded to 3 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUtcMicrosecond() // "456"
|
|
11
|
-
* @example getUtcMicrosecond() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUtcMicrosecond(): string;
|
|
@@ -4,20 +4,13 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
4
4
|
*
|
|
5
5
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
6
6
|
* - Returns zero-padded string to 3 digits.
|
|
7
|
-
* - Returns "" on failure.
|
|
8
7
|
*
|
|
9
|
-
* @returns current microsecond string (zero-padded to 3 digits)
|
|
8
|
+
* @returns current microsecond string (zero-padded to 3 digits)
|
|
10
9
|
*
|
|
11
10
|
* @example getUtcMicrosecond() // "456"
|
|
12
|
-
* @example getUtcMicrosecond() // "" (on failure)
|
|
13
11
|
*/
|
|
14
12
|
export function getUtcMicrosecond() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.padStart(3, "0");
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return "";
|
|
22
|
-
}
|
|
13
|
+
return (Temporal.Now.instant().toZonedDateTimeISO("UTC").microsecond ?? 0)
|
|
14
|
+
.toString()
|
|
15
|
+
.padStart(3, "0");
|
|
23
16
|
}
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Uses Temporal.Now.instant() converted to UTC zoned date time.
|
|
5
5
|
* - Returns zero-padded string to 3 digits.
|
|
6
|
-
* - Returns "" on failure.
|
|
7
6
|
*
|
|
8
|
-
* @returns current millisecond string (zero-padded to 3 digits)
|
|
7
|
+
* @returns current millisecond string (zero-padded to 3 digits)
|
|
9
8
|
*
|
|
10
9
|
* @example getUtcMillisecond() // "123"
|
|
11
|
-
* @example getUtcMillisecond() // "" (on failure)
|
|
12
10
|
*/
|
|
13
11
|
export declare function getUtcMillisecond(): string;
|