ho una sola riga di codice nel mio codice application server che mi ottiene il valore timestamp usando steady_clock
come illustrato di seguito:chrono steady_clock non sta dando il risultato corretto?
uint64_t now = duration_cast<milliseconds>(steady_clock::now().time_since_epoch()).count();
Ora abbiamo due sistemi machineA che è in esecuzione Ubuntu 12 (gcc 4.6.3 compiler)
e ComputerB che è in esecuzione Ubuntu 14 (gcc 4.8.2 compiler)
.
Ora compiliamo il nostro codice application server utilizzando fare sul un'altraUbuntu 12 VM (which has 4.7.3 compiler)
e quindi copiare il file tar che viene generato per machineA e iniziare la nostra assistente di app. Dopo la partenza, la riga di codice precedente viene stampato valore come questo in machineA:
1439944652967
Ora abbiamo anche compilare il nostro codice del server stessa applicazione tramite make sul un'altraUbuntu 14 VM (which has 4.8.2 compiler)
e quindi copiare il file tar che viene generato per machineB e avvia il nostro server delle app. Dopo la partenza, la riga di codice sopra mostra un valore come questo nella macchinaB:
10011360
Si vede la differenza vero? Sono confuso perché questa è la differenza, non sono in grado di capirlo? Tutto il codice e tutto è lo stesso. Qualcuno ha qualche spiegazione su questo e come posso risolverlo?
Se necessario, posso provare ad aggiungere un codice di debug per vedere cosa c'è di sbagliato nel risolvere questo problema.
In termini più generali: "tempo" indica che ora è, "orologi" semplicemente andare a segno. –
Buona risposta, ma l'ora legale non avrà alcun impatto su 'system_clock'. 'system_clock' tipicamente tiene traccia del tempo Unix, che è il conteggio dei secondi non saltanti dal 1970-01-01 nel fuso orario UTC. –
@HowardHinnant Non è garantito il monitoraggio di una volta UTC in UNIX e sono quasi sicuro che sia possibile percepire l'ora legale.Secondo lo standard: "Gli oggetti di classe system_clock rappresentano il tempo di orologio da parete dall'orologio in tempo reale del sistema." (sollevato spudoratamente da [qui] (http://stackoverflow.com/questions/13263277/difference-between-stdsystem-clock-and-stdsteady-clock) poiché non ho accesso allo standard al momento). "L'ora dell'orologio a muro" cambia sicuramente a seconda dell'ora legale. – Corbin