2011-04-24 6 views
1

Perl
어떻게 현재 런던 시간을 얻을 수 있습니까? GMT가 BST
으로 오프셋되어 NYT Red Hat Linux 컴퓨터에서 다른 시간대의 TZ 오프셋 또는 시간 자체를 얻을 수 있습니까?
?

고마워요 훨씬
Perl BST (런던) 시간 또는 기타 시간

답변

4
use DateTime; 
say "UTC:\t\t"  . DateTime->now->iso8601; 
say "London time:\t" . DateTime->now->set_time_zone("Europe/London")->iso8601; 

UTC:   2011-04-24T17:45:16 
London time: 2011-04-24T18:45:16 
+0

어떻게 그 설정과 다른'$ ENV {TZ}' "유럽/런던"에? – tchrist

+1

@tchrist, DateTime은 thread-safe이고'$ ENV {TZ}'메소드는 그렇지 않다고 생각합니다. 나는 그들이 tz 데이터베이스에 대해 다른 소스를 사용한다고 생각한다. DateTime을 사용하여 날짜 또는 시간 소인에서 다른 기능을 수행 할 수 있습니다. DateTime에는 많은 파서와 포맷터가 있습니다. – ikegami

+1

@tchrist 또한 Windows에서 (그리고 다른 플랫폼에서도), 프로그램 시작 후'$ ENV {TZ}'를 설정해도 아무 것도하지 않습니다. 초기 값만 중요합니다. – cjm

0

DateTime 모듈을 사용합니다. 그들은 시간대 지원을 포함하여 모든 종류의 날짜와 시간 계산 도구를 가지고 있습니다.

Time Zones 자주 묻는 질문 (FAQ)을 통해 일반적인 표준 시간대 문제를 시작할 수 있습니다. 표준 펄에서

0

:

% env TZ=Europe/London date 
Sun Apr 24 19:51:24 BST 2011 

% env TZ=Europe/London perl -le 'print scalar localtime' 
Sun Apr 24 19:51:37 2011 

% env TZ=Europe/London perl -MPOSIX=strftime -le 'print strftime "%x %X %Z (%z)", localtime' 
04/24/11 19:51:52 BST (+0100) 
관련 문제