タイムゾーンはdate-fnsでは設定できない。代わりにdate-fns-tzを使う。
parseISOを使っている場合は、zonedTimeToUtcに切り替える。
parseISO(time);
zonedTimeToUtc(time, 'Asia/Tokyo');
サンプルコード
import { format, zonedTimeToUtc } from 'date-fns-tz';
interface DateProps {
time: string;
}
function Date({ time }: DateProps) {
const text = zonedTimeToUtc(time, 'Asia/Tokyo');
const date = format(text, 'yyyy-MM-dd HH:mm:ssXXX', { timeZone: 'Asia/Tokyo' });
return <time dateTime={date}>{format(text, 'yyyy/MM/dd')}</time>;
}
export default Date;