Funkcja time() w Perl

W języku programowania Perl jest wbudowana funkcja time(). Funkcja ta zwraca liczbę całkowitą — liczbę sekund z początek ery. Praktycznie na wszystkich nowoczesnych systemach początek epoki — to zero sekund, zero minut i zero godzin pierwszego stycznia 1970 roku się w strefie czasowej UTC (1970-01-01T00:00:00Z). Liczba ta jest często nazywany timestamp.

Oto przykład pracy z tej funkcji:

▶ Run
#!/usr/bin/perl

print time();

W momencie pisania tego artykułu program poprowadziła liczba 1577113985, co odpowiada dacie 2019-12-23T15:13:05Z.

Argumenty

Funkcja time() nie przyjmuje argumentów. Jeśli starają się przekazać jej argument, to będzie błąd:

▶ Run
#!/usr/bin/perl

print time(8);

Oto wnioski:

syntax error at script.pl line 3, near "(8"
Execution of script.pl aborted due to compilation errors.

Dokładność

Funkcja time() (ona CORE::time()) zwraca liczbę całych sekund z początku epoki. Jeśli dokładnością do sekundy za mało, to można skorzystać funkcję Time::HiRes::time(), która zwraca float liczba liczba sekund z początku epoki.

Przykład programu, który pokazuje użycie tych dwóch funkcji:

▶ Run
#!/usr/bin/perl

use feature qw(say);

use Time::HiRes;

say time();
say Time::HiRes::time();

Przykład wydruku:

1577116390
1577116390.36876

Oficjalna dokumentacja

Oto wynik polecenia perldoc -f time:

       time    Returns the number of non-leap seconds since whatever time the
               system considers to be the epoch, suitable for feeding to
               "gmtime" and "localtime".  On most systems the epoch is
               00:00:00 UTC, January 1, 1970; a prominent exception being Mac
               OS Classic which uses 00:00:00, January 1, 1904 in the current
               local time zone for its epoch.

               For measuring time in better granularity than one second, use
               the Time::HiRes module from Perl 5.8 onwards (or from CPAN
               before then), or, if you have gettimeofday(2), you may be able
               to use the "syscall" interface of Perl.  See perlfaq8 for
               details.

               For date and time processing look at the many related modules
               on CPAN.  For a comprehensive date and time representation look
               at the DateTime module.

Inne artykuły