Mit File::stat
können wir die ctime
einer bestimmten Datei erhalten. Meine Frage ist, wie man die ctime
, die die Inode-Änderungszeit in Sekunden seit der Epoche bedeutet, zu einer normalen Zeitdarstellung wie "2009-08-26 17:28:28" ändert. Gibt es Build-In oder Modul kann diese Aufgabe lösen?Wie ändert man ctime in normale String-Darstellung?
Antwort
Die Standardmethode ist POSIX-Modul zu verwenden und es ist strftime Funktion.
use POSIX qw(strftime);
use File::stat;
my $stat_epoch = stat('some_file.name')->ctime;
print strftime('%Y-%m-%d %H:%M:%S', localtime($stat_epoch));
All dieses Marker wie% Y, m% und so weiter, sind in Standard definiert, und die Arbeit des gleiches in C, system "date" -Befehl (zumindest auf Unix) und so weiter.
use DateTime;
$dt = DateTime->from_epoch(epoch => $epoch);
Das Datetime-Objekt enthält dann die Darstellungen, die Sie benötigen, z. $year = $dt->year;
usw. Im skalaren Kontext erhalten Sie eine schöne, von Menschen lesbare Darstellung, z.
$epoch = 123456789;
$dt = DateTime->from_epoch(epoch => $epoch);
print $dt;
1973-11-29T21:33:09
Es ist ein Beispiel in Time :: localtime Perldoc für die Verwendung es ctime() ist diese Art der Sache zu tun.
use File::stat;
use Time::localtime;
my $date_string = ctime(stat($file)->ctime);
use File::stat;
use Time::CTime;
$file = "BLAH BLAH BLAH";
$st = stat($file) or die "No $file: $!";
print strftime('%b %o', localtime($st->ctime));
#Feb 11th, for example.
Wie Sie aus der Anzahl der Antworten hier sehen können, haben Sie viele Möglichkeiten. Ich mag das Date::Format
Modul:
#!/usr/bin/perl
use strict;
use warnings;
use Date::Format;
use File::Stat;
my $fs = File::Stat->new('.vimrc');
my $mtime = $fs->ctime();
print time2str("changed in %Y on %B, %o at %T\n", $mtime);
Wenn alles, was Sie eine menschenlesbare Darstellung ist wollen, dann
print scalar localtime stat($filename)->ctime;
wird die Arbeit machen. Dies druckt so etwas wie "Wed Jun 10 19:25:16 2009
". Sie können das Format jedoch nicht beeinflussen. Wenn Sie die Zeit in GMT möchten, verwenden Sie stattdessen "scalar gmtime
".
Dies ist ein spezielles Verhalten von localtime und gmtime im skalaren Kontext.
Erstens, verwenden Sie wirklich File::Stat
statt File::stat
? Wenn ja, und wenn Sie 5,8 oder höher haben, wechseln Sie zu File::stat
.
localtime EXPR
localtime
Wandelt eine Zeit, wie für die lokale Zeitzone analysiert, indem die Zeitfunktion zu einer 9-Element-Liste mit der Zeit zurück.
...
Im skalaren Kontext
localtime()
gibt denctime(3)
Wert:
Sobald Sie erkennen, dass localtime
ein Argument nehmen, dann ist dein Geist in diesem Thread erwähnt zu allen anderen Möglichkeiten eröffnet.
#!/usr/bin/perl
use strict;
use warnings;
use File::stat;
my $stat = stat 't.pl';
print "$_\n" for $stat->ctime, scalar localtime($stat->ctime);
Heiliger Mist! Ich habe die Frage bearbeitet und File :: stat durch File :: Stat ersetzt. Diese Änderung jetzt rückgängig machen – innaM
- 1. Stringdarstellung von time_t?
- 2. Wie konvertiert man `ctime` in` datetime` in Python?
- 3. Wie ctime, mtime, ... einer symbolischen Verbindung?
- 4. Wie man ctime() benutzt, um verschiedene Zeitstempel zu drucken
- 5. Wie berechnet man die normale Matrix?
- 6. Wie kann ich die Stringdarstellung von queryset in django bekommen
- 7. Wie man normale Parameter in URL in Symfony übergibt?
- 8. Wie ändert man Gruppen?
- 9. WIE man Vorschau ändert?
- 10. Wie man elasticbeanstalk.conf ändert
- 11. Wie beschädigte Cyrilic in normale
- 12. Wie ändert man das Farbschema für HTML-Attribute in NetBeans?
- 13. wie man Fernvalidierung wie eine normale jquery Ajax anpassen?
- 14. Wie man Ecto Beziehungen ändert
- 15. woocommerce - wie man oocommerce_after_shop_loop_item ändert
- 16. Wie man Code kontinuierlich ändert?
- 17. Wie man eine Textdatei ändert?
- 18. Wie ändert man UICollectionViewCell Höhe?
- 19. Wie ändert man UIBarButtonItem Stil?
- 20. Wie man den Anwendungskontext ändert
- 21. Wie man mysql zu mysqli ändert?
- 22. Wie man wget Ausgang ändert
- 23. Wie ändert man horizontale Navigationspunkte in Links mit Wörtern?
- 24. Wie ändert man Standardästhetik in ggplot?
- 25. Wie ändert man die Dokumentauswahl in Javascript?
- 26. Wie ändert man Eingabetext-Stil in Zeile?
- 27. Wie ändert man Outlook-Kalenderfarbe in C#?
- 28. Wie ändert man Werte in HashSet?
- 29. Wie ändert man die Schriftgröße in ttk.Button?
- 30. wie man Thema in Magento2 ändert
strftime ist der Weg zu gehen. Nicht viel Aufhebens und viel Flexibilität im Ausgabeformat. – Kevin