-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


Funzioni Perl in italiano

indietro

  • localtime ESPR
  • localtime

    Converte l'ora restituita dalla funzione time in una lista di 9 elementi, con l'ora localizzata al fuso orario locale. è tipicamente usato come segue:

        #  0    1    2     3     4     5     6     7     8
        ($sec,$min,$ore,$giom,$mese,$anno,$gios,$gioa,$oraleg) =
    						localtime(time);

    Tutti gli elementi della lista sono numerici, e derivano direttamente dalla 'struct tm' del C. $sec, $min e $ore sono i secondi, i minuti e le ore dell'orario specificato.

    $giom è il giorno del mese, e $mese è il mese stesso, nell'intervallo 0..11, in cui 0 indica Gennaio e 11 Dicembre. Ciò rende facile ottenere il nome di un mese da una lista:

        my @abbr = qw( Gen Feb Mar Apr Mag Giu Lug Ago Set Ott Nov Dic );
        print "$abbr[$mese] $giom";
        # $mese=9, $giom=18 fornisce "Ott 18"

    $anno è il numero di anni a partire dal 1900, non solo le ultime due cifre dell'anno. Ciò significa che $anno è 123 nel 2023. Il modo corretto per ottenere un anno a quattro cifre è semplicemente:

        $anno += 1900;

    Per ottenere le ultime due cifre dell'anno (ad esempio, '01' in 2001) fate:

        $anno = sprintf("%02d", $anno % 100);

    $gios è il giorno della settimana, con 0 che indica Domenica e 3 Mercoledì. $gioa è il giorno dell'anno, nell'intervallo 0..364 (o <0..365> negli anni bisestili).

    $oraleg assume valore vero se l'orario specificato cade durante l'ora legale, valore falso altrimenti.

    Se ESPR viene omessa, localtime() usa l'ora correte (localtime(time)).

    In contesto scalare, localtime() restituisce il valore di ctime(3):

        $stringa_diadesso = localtime;  # es. "Thu Oct 13 04:54:34 1994"

    Questo valore scalare non dipende dal locale ma è interno a Perl. Per il GMT invece del tempo locale, utilizzate la funzione interna gmtime. Consultate anche il modulo Time::Local (per riconvertire secondi, minuti, ore, ... nel valore intero restituito da time()) e le funzioni strftime(3) e mktime(3) del modulo POSIX.

    Per ottenere stringhe di data simili, ma dipendenti dal locale, impostate le vostre variabili d'ambiente relative al locale in maniera appropriata (consultate perllocale) e provate ad esempio:

        use POSIX qw(strftime);
        $stringa_diadesso = strftime "%a %b %e %H:%M:%S %Y", localtime;
        # oppure per il GMT formattato in maniera appropriata per il vostro locale:
        $stringa_diadesso = strftime "%a %b %e %H:%M:%S %Y", gmtime;

    Va notato che gli escape %a e %b, che rappresentano la forma abbreviata del giorno della settimana e del mese dell'anno, possono non essere necessariamente lunghi tre caratteri.

    Si consulti perlport/localtime per ciò che concerne la portabilità.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google