>
JavaScriptで、日時の文字列をUTCの日時としてDate型に変換する方法についての自分用のメモです。
日時の文字列をそのままnew Date()の引数に渡すと、ローカルタイムになってしまいます。
const utcTimestamp: string = '2024-01-09T15:00:00'
const date: Date = new Date(utcTimestamp);
console.log(date) // 2024-01-09T06:00:00.000Z
日時の文字列をUTCの日時でDate型に変換する方法について、ChatGPTに質問したらコードを教えてくれました。
const utcTimestamp: string = '2024-01-09T15:00:00'
const date: Date = new Date(Date.UTC(
parseInt(utcTimestamp.substring(0, 4)),
parseInt(utcTimestamp.substring(5, 7)) - 1, // 月は0~11のため1引く
parseInt(utcTimestamp.substring(8, 10)),
parseInt(utcTimestamp.substring(11, 13)),
parseInt(utcTimestamp.substring(14, 16)),
parseInt(utcTimestamp.substring(17, 19))
));
console.log(date) // 2024-01-09T15:00:00.000Z
UTCやTimezoneやDate型についてよく理解できていないので、これで合っているのかわかりませんが、とりあえずはこれで凌ぎます。