[JavaScript] 日時の文字列をUTCの日時としてDate型に変換する方法

JavaScript

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型についてよく理解できていないので、これで合っているのかわかりませんが、とりあえずはこれで凌ぎます。

広告