/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 { getTimeFormatter } from '@superset-ui/core'; // Cal-Heatmap provides local timestamps. We subtract the offset so that utcFormat displays the correct local date. export const getFormattedUTCTime = ( ts: number | string, timeFormat?: string, ) => { const date = new Date(ts); const offset = date.getTimezoneOffset() * 60 * 1000; return getTimeFormatter(timeFormat)(date.getTime() - offset); }; // The vendor library interprets timestamps as local time but the backend sends UTC timestamps. // That's why we need to add the offset export const convertUTCTimestampToLocal = (utcTimestamp: number): number => { const date = new Date(utcTimestamp); const offsetMs = date.getTimezoneOffset() * 60 * 1000; return utcTimestamp + offsetMs; };