Perl: Как преобразовать метку времени Unix + часовой пояс в местное время - PullRequest
0 голосов
/ 15 июля 2011

основной вопрос в заголовке: у меня есть метка времени Unix и часовой пояс, например, «Америка / Каракас», и я хотел бы преобразовать его в местное время часового пояса.

нашел кого-то еще , задавшего почти такой же вопрос , однако предоставленный код ответа

$t = new DateTime();
$t->setTimestamp( $time=time() );
$t->setTimeZone(new DateTimeZone("America/Denver"));
print $t->format(DateTime::RFC850);

не работает (больше?).DateTime () не позволяет мне устанавливать метку времени;я просмотрел источник DateTime, но также не увидел, где я мог бы подключить свою собственную метку времени.Любые мысли / помощь?

Большое спасибо заранее!

Ответы [ 2 ]

4 голосов
/ 15 июля 2011
use DateTime;

my $dt = DateTime->from_epoch(
    epoch     => time(), 
    time_zone => "America/Denver"
);
print "$dt\n";

Подробнее см. В документах DateTime .

0 голосов
/ 15 июля 2011

Попробуйте:

my $epoch = time;
warn $epoch;
my $dt = DateTime->from_epoch( epoch => $epoch );
warn $dt->year;
#and so on
...