User since
2005-09-08
3
Artikel
BenutzerIn
Hallo.
Ich haette mal eine Frage zur umrechnung von Zeiten.
Folgendes Problem: Die Zeit ist als UTC bzw. GMT abgespeichert. Und ich moechte die GMT Zeit auf eine "beliebige" localtime umrechnen. Leider erlaubt mir anscheinend timegm() diese Option nicht. Oder gibt es da doch eine Moeglichkeit. Besonders wichtig ist mir auch die korrekte Umsetzung der Sommerzeit (da gibts ja einige Ausnahmen und Tuecken).
Die Funktion sollte also gewissermassen so aussehen:
$ltim = getlocaltime($gmttime,$timezone);
Hat so etwas schon jemand realisiert?
User since
2005-09-08
3
Artikel
BenutzerIn
hi, da war ich schon. timegm und timelocal sind beide von dave rolsky. nur wie uebergebe ich diesen beiden funktionen in welcher zeitzone ich bin? wie gesagt, ich muss in eine beliebige zone umrechnen, nicht nur die die am lokalen computer eingestellt ist.
User since
2003-08-04
14371
Artikel
ModeratorIn
Dann schau Dir mal
Date::Parse an, da kann man die Zone mit angeben...
User since
2004-06-18
74
Artikel
BenutzerIn
kan sein so?
#CFG config
#------------------------------------------------
#--- GMT Time -----------------------------------
our %config;
$config{'gmt_time'} = 2; #How many hours will be setup
$config{'gmt_func'} = '+'; #what we need - or +
sub make_time {
use POSIX;
my ( $sec, $min, $hour, $mday, $mon, $year )=localtime(time);
$min="0$min" if ($min < 9);
$hour=$hour.$config{'gmt_func'}.$config{'gmt_time'};
$config{'now'}=int POSIX::strftime("\%H\%M",$sec,$min,$hour,$mday,$mon,$year);
$config{'today'}=POSIX::strftime("\%Y-\%m-\%d",$sec,$min,$hour,$mday,$mon,$year);
return;
}
\n\n
<!--EDIT|polkana|1126171805-->
User since
2003-08-04
14371
Artikel
ModeratorIn
Der Unterschied zu GMT ist nicht immer fix... z.B. Bei der Umstellung von Sommerzeit auf Winterzeit (und umgekehrt) ändern sich die Unterschiede...
User since
2005-09-08
3
Artikel
BenutzerIn
Hallo liebe Leute die Loesung ist ganz einfach:
Dieses Script checkt sicher auch die Umstellung von Sommerzeit auf Normalzeit, etc.
use DateTime;
use DateTime::TimeZone;
{
my $dt = DateTime->now->set_time_zone('Pacific/Auckland');
print "Zeitunterschied in Stunden von UTC : " . $dt->offset/3600 . "\n";
}