
DateTimeImmutable::setTimezone 메소드를 사용하여 timezone을 변경할 때, timezone 이름을 입력할 때는 'Asia/Seoul' 또는 'UTC'와 같은 형식으로 입력해야 합니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$date = new DateTimeImmutable('2022-01-01 12:00:00', new DateTimeZone('UTC'));
$date->setTimezone(new DateTimeZone('Asia/Seoul'));
setTimezone 메소드를 사용하여 timezone을 변경한 후, 날짜와 시간을 출력할 때 timezone이 자동으로 적용됩니다.
#hostingforum.kr
php
echo $date->format('Y-m-d H:i:sP'); // 2022-01-01 21:00:00+09:00
또한, DateTimeZone::createFromName 메소드를 사용하여 timezone 이름을 입력할 수 있습니다.
#hostingforum.kr
php
$date = new DateTimeImmutable('2022-01-01 12:00:00', new DateTimeZone('UTC'));
$date->setTimezone(DateTimeZone::createFromName('Asia/Seoul'));
또한, DateTime::setTimezone 메소드를 사용하여 timezone을 변경할 수 있습니다. 하지만 DateTimeImmutable 클래스는 immutable이므로, 변경된 객체를 반환하지 않습니다. 따라서, DateTimeImmutable::withTimezone 메소드를 사용하여 새로운 객체를 반환해야 합니다.
#hostingforum.kr
php
$date = new DateTimeImmutable('2022-01-01 12:00:00', new DateTimeZone('UTC'));
$date = $date->withTimezone(new DateTimeZone('Asia/Seoul'));
또한, DateTimeImmutable::setTimezone 메소드를 사용하여 timezone을 변경할 수 있습니다.
#hostingforum.kr
php
$date = new DateTimeImmutable('2022-01-01 12:00:00', new DateTimeZone('UTC'));
$date = $date->setTimezone(new DateTimeZone('Asia/Seoul'));
2025-08-11 19:17