| Current Path : /proc/self/root/proc/thread-self/root/usr/share/doc/perl-Time-Moment/eg/ |
| Current File : //proc/self/root/proc/thread-self/root/usr/share/doc/perl-Time-Moment/eg/clocks.pl |
#!/usr/bin/perl
use strict;
use warnings;
use Time::Moment;
use DateTime::TimeZone;
my @zones = qw(
Africa/Cairo
America/Chicago
America/Los_Angeles
America/New_York
Asia/Dubai
Asia/Hong_Kong
Asia/Kathmandu
Asia/Tokyo
Australia/Sydney
Europe/Brussels
Europe/London
Europe/Moscow
Europe/Paris
Europe/Stockholm
Pacific/Apia
);
my $now = Time::Moment->now;
my @clocks;
foreach my $name (@zones) {
my $zone = DateTime::TimeZone->new(name => $name);
my $offset = $zone->offset_for_datetime($now) / 60;
my $time = $now->with_offset_same_instant($offset);
$name =~ s![^/]+/!!;
$name =~ s!_!\x20!g;
push @clocks, [$name, $time];
}
@clocks = sort {
$a->[1]->offset <=> $b->[1]->offset
or $a->[0] cmp $b->[0]
} @clocks;
for my $clock (@clocks) {
my ($name, $time) = @$clock;
my $delta = $time->offset - $now->offset;
printf "%-12s %-16s (%+.2d:%.2d)\n",
$name, $time->strftime("%a %H:%M %:z"), $delta / 60, abs($delta) % 60;
}