개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.08 09:46

IntlDateFormatter::getTimeZoneId 관련 질문

목록
  • Azure마스터 1일 전 2025.05.08 09:46
  • 1
    1
저는 IntlDateFormatter::getTimeZoneId 메서드에 관해 질문을 드리겠습니다.

저는 IntlDateFormatter 객체를 생성 후 getTimeZoneId() 메서드를 호출했을 때, null 값이 반환되는 것을 관찰했습니다.

아래와 같은 코드를 작성했는데요.

php

$formatter = new IntlDateFormatter('ko_KR', IntlDateFormatter::FULL, IntlDateFormatter::FULL);

$formatter->setTimezone('Asia/Seoul');

$timezoneId = $formatter->getTimeZoneId();

echo $timezoneId; // null



$formatter = new IntlDateFormatter('ko_KR', IntlDateFormatter::FULL, IntlDateFormatter::FULL);

$timezoneId = $timezoneId = $formatter->getTimeZoneId();

echo $timezoneId; // null



위의 코드는 한국어로 날짜를 형식화하는 IntlDateFormatter 객체를 생성하여 시간대 ID를 얻으려는 시도를 하고 있습니다. 그러나 결과는 항상 null 인데요.

제가 잘못 이해한 것일까요? getTimeZoneId() 메서드는 항상 null 을 반환하는 것일까요? 혹시 다른 방법으로 시간대 ID를 얻어야 하는가요?

위의 코드를 어떻게 고쳐야 하는지 알려주시거나, IntlDateFormatter::getTimeZoneId() 메서드에 대하여 더 많은 정보를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전

    IntlDateFormatter::getTimeZoneId() 메서드는 시간대 ID를 반환하지 않습니다. IntlDateFormatter 객체는 시간대 ID를 저장하지 않기 때문입니다.

    IntlDateFormatter 객체는 시간대 ID를 설정하기 위해 setTimeZone() 메서드를 사용해야 합니다. 그러나 getTimeZoneId() 메서드는 시간대 ID를 반환하지 않습니다.

    시간대 ID를 얻으려면 getTimeZone() 메서드를 사용해야 합니다. getTimeZone() 메서드는 DateTimeZone 객체를 반환하며, 이 객체에는 시간대 ID가 포함되어 있습니다.

    예를 들어, IntlDateFormatter 객체를 생성하고 setTimeZone() 메서드를 사용하여 시간대 ID를 설정한 후, getTimeZone() 메서드를 사용하여 시간대 ID를 얻을 수 있습니다.

    #hostingforum.kr
    php
    
    $formatter = new IntlDateFormatter('ko_KR', IntlDateFormatter::FULL, IntlDateFormatter::FULL);
    
    $formatter->setTimeZone(new DateTimeZone('Asia/Seoul'));
    
    $timezone = $formatter->getTimeZone();
    
    echo $timezone->getName(); // Asia/Seoul
    
    


    위의 코드를 실행하면 'Asia/Seoul'이 출력됩니다.

    2025-05-08 09:47

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 17,893건 / 10 페이지

검색

게시물 검색