
MessageFormatter::parse 메서드는 timezone 정보를 무시하는 것은 아니지만, 기본적으로 UTC timezone을 사용합니다.
MessageFormatter::parse 메서드는 날짜 포맷을 파싱할 때, timezone 정보를 무시하는 것처럼 보이는 이유는, timezone 정보가 파싱된 날짜에 포함되지 않기 때문입니다.
위 코드에서 '2022-01-01T00:00:00+09:00'은 UTC timezone에서 2022-01-01T00:00:00을 의미합니다.
MessageFormatter::parse 메서드는 UTC timezone에서 날짜를 파싱하기 때문에, timezone 정보가 무시되는 것처럼 보입니다.
timezone 정보를 포함하여 날짜를 파싱하려면, timezone 정보를 포함한 날짜를 파싱하는 메서드를 사용해야 합니다.
예를 들어, DateTimeImmutable::createFromFormat 메서드를 사용하면 timezone 정보를 포함한 날짜를 파싱할 수 있습니다.
php
$date = DateTimeImmutable::createFromFormat('Y-m-dTH:i:sP', '2022-01-01T00:00:00+09:00');
print_r($date);
위 코드는 timezone 정보를 포함한 날짜를 파싱하여 DateTimeImmutable 객체를 반환합니다.
또는 IntlDateFormatter::parse 메서드를 사용하여 timezone 정보를 포함한 날짜를 파싱할 수 있습니다.
php
$formatter = new IntlDateFormatter('en', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Seoul');
$date = $formatter->parse('2022-01-01T00:00:00+09:00');
print_r($date);
위 코드는 timezone 정보를 포함한 날짜를 파싱하여 날짜를 반환합니다.
MessageFormatter::parse 메서드를 사용하여 timezone 정보를 포함한 날짜를 파싱하려면, timezone 정보를 포함한 날짜 포맷을 사용해야 합니다.
예를 들어, 'yyyy-MM-dd\'T\'HH:mm:ssXXX'은 timezone 정보를 포함한 날짜 포맷입니다.
php
$formatter = new MessageFormatter('en', 'yyyy-MM-dd'T'HH:mm:ssXXX');
$date = $formatter->parse('2022-01-01T00:00:00+09:00');
print_r($date);
위 코드는 timezone 정보를 포함한 날짜 포맷을 사용하여 timezone 정보를 포함한 날짜를 파싱합니다.
MessageFormatter::parse 메서드는 timezone 정보를 무시하는 것은 아니지만, 기본적으로 UTC timezone을 사용합니다. timezone 정보를 포함하여 날짜를 파싱하려면, timezone 정보를 포함한 날짜 포맷을 사용해야 합니다.
2025-06-14 09:32