Open1

JSでDate型からJSTオフセット付きのISOStringを雑に得る方法

Nakano as a ServiceNakano as a Service
import { addHours } from 'date-fns';

export const formatJstIsoDateTime = (date: Date) => {
	return addHours(date, 9).toISOString().replace("Z", "+09:00");
};

export const formatJstIsoDate = (date: Date) => {
	return addHours(date, 9).toISOString().slice(0, 10);
};

export const parseImplicitJstIsoDateTime = (date: string) => {
  return new Date(date + '+09:00');
};

export const parseImplicitJstIsoDate = (date: string) => {
  return new Date(date + 'T00:00:00+09:00');
};

おそらく色々問題はあると思う。例えば日本にサマータイムが導入されていた次期があったらしく、その時間の日付を扱う際などは破綻する。