const dateFormat = new Intl.DateTimeFormat("sv", { timeZone: "EST", year: "numeric", month: "2-digit", hour: "2-digit", day: "2-digit", minute: "2-digit", }); // YYYY-MM-DD HH:MM export function formatQuestionTimestamp(date: Date) { return dateFormat.format(date); } // YYYY-MM-DDTHH:MM:00Z export function formatQuestionISOTimestamp(date: Date) { const str = dateFormat.format(date); return `${str.slice(0, 10)}T${str.slice(11)}-05:00`; } // YYMMDDHHMM export function formatQuestionId(date: Date) { return formatQuestionTimestamp(date).replace(/[^\d]/g, "").slice(2, 12); } export function questionIdToTimestamp(id: string) { if (id.length !== 10 || !/^\d+$/.test(id)) { return null; } const date = new Date( `20${id.slice(0, 2)}-${id.slice(2, 4)}-${id.slice(4, 6)} ${ id.slice(6, 8) }:${id.slice(8, 10)}:00 EST`, ); if (isNaN(date.getTime())) { return null; } return date; }