Temporal[0]がこれをやるのが好きだな。君が扱ってたのはTemporal.PlainDate[1]、つまりカレンダーはあるけど時間やタイムゾーンはない日付だね(暗黙のうちに含まれてるかもしれないけど、誕生日みたいに関係ないこともある)。Temporalには他にも面白いタイプがあって、それぞれ異なる意味があるんだ:- Instant: カレンダーや場所に関係なく固定された時点。例えば「ユーザーがX日付と時間にログインした」みたいな感じで、どのタイムゾーンやカレンダーシステムでも有効。これが通常「Unix UTCタイムスタンプ」で使われるもの。- ZonedDateTime: Instantに似てるけど、特定のカレンダーと場所に関連付けられてる。Instantをカレンダーシステムとタイムゾーンに「リアル」に変換した感じで、ユーザーが意味のある時間を見れるようになってる。- PlainDate: さっき話したやつ。例えば誕生日とか。- PlainTime: 「毎日6:30pmにタスクを実行する」みたいな感じ。- PlainDateTime: Instantに似てるけどカレンダーシステムに関連付けられてて、タイムゾーンはない。ユーザーが日付ピッカーに入れるようなもので、タイムゾーンは暗黙的に含まれてる。- PlainYearMonth: 例えば「2025年10月にレポートを実行する」みたいな感じ。- PlainMonthDay: 例えば「私の誕生日は6月13日」みたいな。- Duration: 例えば「タスクは3時間30分実行された」みたいな。重要な概念も見てみてね[2]。[0] https://tc39.es/proposal-temporal/docs/ [1] https://tc39.es/proposal-temporal/docs/#Temporal-PlainDate [2] https://tc39.es/proposal-temporal/docs/timezone.html