2012-11-01 6 views
0

UTC 시간 끝에 Z를 추가이 ->나는 펄을 사용하고 전달하고

DateTime->now(time_zone => 'UTC')) to the method below 

sub get_datetime{ 
    my ($datetime) = @_; 
    my $formatter = new DateTime::Format::Strptime(pattern => "%Y-%m-%d %H:%M:%S", 
         time_zone => "UTC"); 
    return $formatter->format_datetime($datetime); 
} 

나는 2012-10 같은 시간을 표시 할 -10 10 : 00 : 01Z

어떻게하면 UTC 시간 동안 Z를 끝에 추가 할 수 있습니까? 나는 패턴 => "% Y- % m- % d % H : % M : % S % Z"을 시도했지만 컴파일하지 않았습니다.

답변

1

시도 :

pattern => "%Y-%m-%d %H:%M:%SZ" 

-letter 부품이 때부터 물건으로 대체됩니다 무엇입니까 %; 리터럴 Z는 앞에 %가 없어야합니다.

+0

감사합니다. 이게 효과가있어. – sbolla

0

%Z이 코드 컴파일을 중단한다는 것에 놀랐습니다. 어떤 오류 메시지가 나타 납니까?

%Z은 시간대를 가져 오는 데 올바른 형식이지만 원하는 형식과 다른 형식으로 표시됩니다.

$ perl -MDateTime -E'say DateTime->now->strftime("%Y-%m-%d %H:%M:%S%Z")' 
2012-11-02 13:56:05UTC 

또 다른 옵션은 %z입니다. 하지만 다시 말하지만, 원하는 형식을 제공하지 않습니다.

$ perl -MDateTime -E'say DateTime->now->strftime("%Y-%m-%d %H:%M:%S%z")' 
2012-11-02 13:57:00+0000 

그렇기 때문에 'Z'가 최선의 선택입니다. 그러나 당신의 날짜가 실제로 UTC로되어 있는지 어떻게 확신 할 수 있느냐에 따라 다소 불편한 점이 있습니까?

$ perl -MDateTime -E'say DateTime->now->set_time_zone("America/New_York")->strftime("%Y-%m-%d %H:%M:%SZ")' 
2012-11-02 10:01:56Z 
관련 문제