Safari(ios) new Date 객체 생성 이슈
•DEVHIMCHAN
브라우저 호환성
Safari(ios) new Date 객체 생성 이슈
웹 프로젝트에서 서버와 통신 시 전달받은 YYYY.MM.DD 날짜를 new Date를 통해 Date 객체로 변환할 필요가 있었다. 습관처럼 아래 형식으로 Date 객체를 만들었고, chrome 개발 환경에서 정상 동작했다.const formattedDate = new Date("2025.07.31");
하지만 Flutter로 웹 프로젝트를 앱 패키징하여, ios 앱에서 safari로 실행할 때 formattedDate가 Invalid Date가 되는 에러가 발생했다.
원인은 ios safari는 '.' 으로 연결된 날짜는 Date 객체로 바꿔주지 않는 스펙 차이로 발생한 것이었다.
(chrome에서는 YYYY.MM.DD 같은 string도 Date 객체로 잘 생성해준다.)
해결
const formattedDate = new Date("2025.07.31"?.replaceAll(".", "-"));
지금까지 시간은 TZ 포맷으로 서버와 통신해서 겪지 못했던 이슈라 신기해서 기록해둔다.