UNPKG

@blueprintjs/datetime

Version:

Components for interacting with dates and times

37 lines 1.67 kB
/* * Copyright 2023 Palantir Technologies, Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { __assign } from "tslib"; import { getTimezoneOffset } from "date-fns-tz"; /** * Augment hard-coded timezone information stored in this package with its current offset relative to UTC, * adjusted for daylight saving using the current date. * * @see https://github.com/marnusw/date-fns-tz#gettimezoneoffset */ export function lookupTimezoneOffset(tz, date) { var offsetInMs = getTimezoneOffset(tz.ianaCode, date); if (isNaN(offsetInMs)) { throw new Error("Unable to lookup offset for invalid timezone '".concat(tz.ianaCode, "'")); } var isPositiveOffset = offsetInMs >= 0; var offsetInMinutes = Math.abs(offsetInMs) / 1000 / 60; var offsetHours = Math.trunc(offsetInMinutes / 60) .toString() .padStart(2, "0"); var offsetMinutes = (offsetInMinutes % 60).toString().padEnd(2, "0"); return __assign(__assign({}, tz), { offset: "".concat(isPositiveOffset ? "+" : "-").concat(offsetHours, ":").concat(offsetMinutes) }); } //# sourceMappingURL=timezoneOffsetUtils.js.map