User since
2005-10-19
44
Artikel
BenutzerIn
Hi leute, habe ein kleines Problem mit den Timefunktionen und wollte mal fragen ob ihr das auch kennt oder was man dagegen machen kann.
Ich erzeuge txt files und generiere mir aus den Zeitfunktionen einen individuellen Namen.
Hier mal ein Beispiel:
Report_Thu-Feb-2006-14-43-25.txt
Das Problem ist jetzt das die Funktionen die Zeit immer unterschiedlich berechnen. ( Code folgt unten ).
So habe ich heute folgendes File erzeugt.
Report_Fri-Feb--8-55-42.txt
Das Problem hatte ich schon oefter und dachte aber zunaechst das sich bei mir der Fehlerteufel eingeschlichen hat. Aber da es meistens so ist das es an einem Tag problemlos funktionierte und am naechsten nicht mehr gehe ich mittlerweile davon aus das die Funktion unterschiedliche Datum`s (^^) unterschiedlich abspeichert.
Hier nun der Code mit dem ich das File erzeuge.
$today = time;
$date = localtime($today);
@a = split/ /,$date;
($sek,$min,$std)= localtime(time);
$rightdate = join'-',($a[0],$a[1],$a[5],$std,$min,$sek);
# Create the spezific filename
$filepath = "Report";
$filepath = join '_',($filepath,$rightdate);
$setting = paths(reportpath);
$filepath = join'',($setting,$filepath);
$filepath = join'.',($filepath,txt);
Aus der Funktion paths bekomme ich den absoluten Pfad, also in welchen Ordner ich speichern will.
z.B. C:\Programme\reports\
Also meiner Meinung nach macht die Zeile
$date = localtime($today); eben dieses komische Verhalten.
PS: Mir ist es auch schon passiert das ich gar kein File erzeugen konnte, da ich auf einmal in den Variablen $a[1] oder $a[2] usw. die Uhrzeit hatte also 9:13:22. Durch die Doppelpunkte wurde dann kein File erzeugt. ( ungueltiger Name );
Hoffe ihr koennt mir weiter helfen
MFG
fritz
User since
2003-08-04
14371
Artikel
ModeratorIn
Warum nicht
use Time::Format qw(%time);
my $string = $time{'Day-Mon-yyyy-dd-hh-mm-ss'};
print $string;
ungetestet...
Mehr dazu in der Doku von
Time::Format\n\n
<!--EDIT|renee|1139560834-->
User since
2005-10-19
44
Artikel
BenutzerIn
Vielen dank, funktioniert bis jetzt wunderbar, hoffe das sich hier auch das Format nicht aendert. Gehe aber mal davon aus das es sich nicht veraendert da ich ihm ja genau sage wo was stehen soll.
Also vielen Dank nochmal
MFG
Fritz
User since
2005-01-17
14748
Artikel
Admin1
Ich würde für Datum ein ISO-Foprmat nehmen.
Also YYYYMMDD_hhmmss. Dann sieht eineR gleich von wann es ist.
User since
2003-09-12
30
Artikel
BenutzerIn
...ich benutze immer POSIX::strftime()...
User since
2003-08-04
14371
Artikel
ModeratorIn
Das schoene an
Time::Format ist, dass man das alles selbst einstellen kann... (also auch
strftime)
User since
2005-02-01
181
Artikel
BenutzerIn
[quote=GwenDragon,10.02.2006, 13:09]Ich würde für Datum ein ISO-Foprmat nehmen.
Also YYYYMMDD_hhmmss. Dann sieht eineR gleich von wann es ist.[/quote]
Meines Wissens empfiehlt
ISO 8601 YYYY-MM-DDThh:mm:ss
Gruß
Thomas
User since
2005-01-17
14748
Artikel
Admin1
[quote=sesth,13.02.2006, 13:12]Meines Wissens empfiehlt
ISO 8601 YYYY-MM-DDThh:mm:ss[/quote]
Natürlich.
Aber du kannst aus YYYY-MM-DDThh:mm:ss nicht auf jedem System einen korrekten Dateinamen nachen.