Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]9132[/thread]

Umrechnung von Unix Time mit Perl

Leser: 2


<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
Rambo
 2007-06-28 12:35
#77945 #77945
User since
2003-08-14
803 Artikel
BenutzerIn

user image
Hallo zusammen,

wie kann man den Unix zeitstempel in ein normales Datum/Zeit
umwandeln? Gibt es hier was fertiges?

Vielen Dank

Rambo
esskar
 2007-06-28 12:46
#77946 #77946
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ist doch das selbe was time() liefert.
sollte also kein thema sein
renee
 2007-06-28 12:54
#77947 #77947
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Man kann POSIX verwenden oder so etwas:

Code (perl): (dl )
1
2
3
4
sub get_date{
    my ($day,$month,$year) = (localtime time)[3..5];
    return sprintf "%02d.%02d.%04d", $day, $month+1, $year+1900;
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Rambo
 2007-06-28 13:01
#77948 #77948
User since
2003-08-14
803 Artikel
BenutzerIn

user image
Habe mich falsch ausgedrückt oder euch noch nicht Verstanden.

Ich lese aus einer DB die Unix TimeString aus und möchte
diesen dann umwandeln in ein Lesbares Datum:

1183020463593 = 28.06.2007 09:00:12

Merci Rambo
renee
 2007-06-28 13:09
#77949 #77949
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use strict;
use warnings;

print get_date( '1183020463593' );

sub get_date{
    my ($time) = @_;
    my ($sec,$min,$hour,$day,$month,$year) = (localtime $time)[0..5];
    return sprintf "%02d.%02d.%04d %02d:%02d:%02d", $day, $month+1, $year+1900, $hour, $min,$sec;
}


ungetestet\n\n

<!--EDIT|renee|1183021984-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sid burn
 2007-06-28 13:11
#77950 #77950
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Das geht mit localtime()
Im Listenkontext bekommst du ein Array zurück mit den einzelnen Werte( tag, Monat,...) und im Skalaren Kontext bekomsmt du sofort einen Timestamp String zurück.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use strict;
use warnings;

my $time = 1183021696;

my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
localtime( $time );
$mon += 1;
$year += 1900;

printf "%s.%s.%s %s.%s.%s\n", $mday, $mon, $year, $hour, $min, $sec;
print scalar localtime($time), "\n";


Für weitere Informatioen siehe perldoc -f localtime
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
PerlProfi
 2007-06-28 13:23
#77951 #77951
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
@Rambo: kann es sein, dass du dich mit dem Beispiel ( 1183020463593 ) vertan hast?
Bei mir kann localtime() jedenfalls nicht so weit in die Zukunft schauen.
Rambo
 2007-06-28 13:33
#77952 #77952
User since
2003-08-14
803 Artikel
BenutzerIn

user image
@all vielen Dank damit komme ich weiter.

@PerlProfi, die zahl stimmt und das Ergebnis mit sid burns code
ist dann 28.6.2007 11:8:16

das kommt denke ich hin.

gr. rambo
sid burn
 2007-06-28 13:37
#77953 #77953
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
[quote=Rambo,28.June.2007, 11:33]@PerlProfi, die zahl stimmt und das Ergebnis mit sid burns code
ist dann 28.6.2007 11:8:16[/quote]
Also zu deinen Beispeil. Äh nö?

Code: (dl )
1
2
sidburn@sid:~/perl$ perl -wle 'print scalar localtime(1183020463593)'
Thu Jan 1 00:59:59 1970


Der 28.6.2007 09:00:12 hat den Timestamp 1185606012

Code: (dl )
1
2
sidburn@sid:~/perl$ perl -wle 'print scalar localtime(1185606012)'
Sat Jul 28 09:00:12 2007


Aber ist ja auch egal. War ja nur ein beispiel, und du hast ja was du wolltest. ;)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
renee
 2007-06-28 13:40
#77954 #77954
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=sid burn,28.06.2007, 11:37]Der 28.6.2007 09:00:12 hat den Timestamp 1185606012

Code: (dl )
1
2
sidburn@sid:~/perl$ perl -wle 'print scalar localtime(1185606012)'
Sat Jul 28 09:00:12 2007
[/quote]
Nö, das ist der 28. Juli (In Zahlen 28.7.) ;) Wie Du an Deiner eigenen Ausgabe erkennst *fg* *SCNR*
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2007-06-28 12:35.