export class DateHelper { public static async adjustTimestampByTimezone( timestamp: number | null, timezone: number | null ): Promise { if (!timestamp) { return null; } if (!timezone) { return null; } const minutes: number = timezone * -60; const milliseconds: number = minutes * 60000; return timestamp - milliseconds; } public static async getTimestampWithoutTimezone( year: number | null, month: number | null, date: number | null ): Promise { if (!year) { return null; } if (month == null) { return null; } if (!date) { return null; } const timestamp: number = new Date(year, month, date).getTime(); const timezone: number = (new Date().getTimezoneOffset() / 60) * -1; return await DateHelper.adjustTimestampByTimezone(timestamp, timezone); } public static async toDate(timestamp: number): Promise { if (!timestamp) { return null; } return await DateHelper.getTimestampWithoutTimezone( new Date(timestamp).getUTCFullYear(), new Date(timestamp).getUTCMonth(), new Date(timestamp).getUTCDate() ); } }