Time management

4.8
Negli anni, ogni sistema operativo ha investito risorse sulla gestione del tempo.
Nella gestione di "Data e ora" gli standard si sprecano, nei sistemi operativi ne abbiamo contati almeno 6.

Questa sezione offre un sottoinsieme di API che permettono di trattare il tempo, effettuando calcoli ed altre utilità necessarie durante la programmazione.
Per avere una compatibilità multi-piattaforma, easyhand usa un suo formato del tempo eht (Easy Hand Time), una struttura.
Per salvarlo e leggero da tabelle e files invece usiamo DT che è una stringa con questo formato "yyyymmmdd_hhmmss", dove non è presente il formato TIMESTAMP.
Comunque esistono funzioni che trattano semplicemente la data nel formato 8 caratteri.
Nel trattamento dei files le date vengono gestite in INT64 (intero a 64bit) che è il metodo più performante per trattare l'informazione che non necessita elaborazione.

UTC

UTC è l'acronimo di Coordinated Universal Time, ed è la distanza in secondi trascorsa dal 1 gennaio 1970.
E' intesa come GMT (Meridiano di Greenwich) alla quale va sommato o sottratto un bias (offset) in base al fuso e al daylight (Ora solare/legale).
Ogni volta che usiamo EH_TIME, l'UTC viene calcolato su base locale (ora del sistema) per permettere di fare i calcoli corretti.
Vengono inseriti nella struttura anche il flag se è attivo il Daylight e il "bias", cioè lo spostamento rispetto all'offset per arrivare a GMT, che sono necessari per creare la data per le email.
Quindi a scanso di equivoci utcTime deve essere sommato a bias per avere il UTC Time GMT, se si ha interesse ad avere un GMT Time.
In Easyhand tutte le funzioni lavorano con l'ora intesa come locale.

Fusi Orari, Time Zona, DayLight, ecc ...

In linea di massima trattare la data e l'ora è semplice se si usa come riferimento solo l'ora locale: normalmente si salva su db usando una stringa o un numero nel formato yyyymmdd oppure attraverso il DT (yyyymmdd_hhmmss).
Se non si deve usare fusi orari conviene continuare in questo modo, altrimenti la cosa diventa complicata.
Se si desidera vedere e gestire date a più fusi orario, è necessario usare nel DB/SQL il campo formato TIMESTAMP (che poi è un UTC, un numero a 64bit) e lasciare fare i calcoli al mySQL (SQL) e/o sistema operativo.

Il formato TIMESTAMP memorizza la data sempre in UTC (GMT) e scrive e legge la data nel formato di default (SYSTEM/LOCAL).
Questo rende le cose fattibili, perché la conversione non è cosi semplice come può sembra inizialmente, entrano in gioco diversi fattori socio/politici temporali e non solo lo "spicchio del globo".
Paese per paese, anno per anno, sono cambiate le caratteristiche dei fuso orari e di day light.
Quindi normalmente si richiede al sistema operativo o al sql la conversione, non usando il bias del tempo, ma indicando il direttamente il nome del paese.
Un dbase apposito (Time Zone Information) si occupa di effettuare le conversioni del caso.

Vedi

Convertire una formato in un altro.
See also:
Easyhand C/C++: Time management | Last modified: 07/02/2013 19.23.14 Europe/Rome | #1.7
P.. 439
Easyhand C/C++
Una mano alle tue idee.
Privacy Policy