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