Date time timezone
by b_g_v
HTML
<h2>JavaScript Dates</h2>
<p id="demo"></p>
JavaScript
const t = "2025-06-19T10:00:00.000Z";
//const tzString = "UTC";
//const tzString = "Asia/Tokyo";
//const tzString = "America/Chicago";
const tzString = "-05:00";
const d = new Date(t);
let text = d.toLocaleString("en-US", {timeZone: tzString, dateStyle: "short", timeStyle: "long", hour12: false});
console.log(text);
//text = parseCustomDate(text);
//console.log(text);
d2 = new Date(text);
const formatter = new Intl.DateTimeFormat('uk-UA', {
weekday: 'short',
year: 'numeric',
month: '2-digit',
day: '2-digit'
});
function parseCustomDate(str) {
const match = str.match(/(\d{1,2})\/(\d{1,2})\/(\d{2}), (\d{1,2}):(\d{2}):(\d{2}) GMT([+-]\d{1,2})/);
if (!match) throw new Error('Invalid format');
const [ , m, d, y, h, min, s, offsetHour ] = match;
const fullYear = `20${y.padStart(2, '0')}`;
const month = m.padStart(2, '0');
const day = d.padStart(2, '0');
const hour = h.padStart(2, '0');
const minute = min.padStart(2, '0');
const second = s.padStart(2, '0');
// Pad offset to `+09:00` format
const tzOffset = `${offsetHour.startsWith('-') ? '-' : '+'}${String(Math.abs(offsetHour)).padStart(2, '0')}:00`;
const iso = `${fullYear}-${month}-${day}T${hour}:${minute}:${second}${tzOffset}`;
console.log(iso);
return new Date(iso);
}
function formatDate(date){
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
const formatted = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
return formatted;
}
document.getElementById("demo").innerHTML = t + '<BR><BR>' +
text + '<BR><BR>' +
d2 + '<BR><BR>' +
d2.toISOString() + '<BR><BR>' +
formatter.format(d2) + '<BR><BR>' +
formatDate(d2) +...