Sono consapevole che il valore predefinito di un std::chrono::system_clock::time_point
è l'epoca dell'orologio, ma non riesco a trovare alcun mandato nello standard C++ 11 che l'epoca system_clock
sia la stessa come l'epoca POSIX (1970-01-01T00: 00: 00Z). È sicuro assumere su Linux e Windows che questo è il caso? O sarebbe più intelligente usare std::chrono::system_clock::from_time_t(0)
?Ottieni POSIX epoch come system_clock :: time_point
risposta
Lo standard lascia l'epoca di std::chrono::system_clock::time_point
non specificato.
Ci sono tre implementazioni di std::chrono::system_clock::time_point
Sono consapevole di:
- libC++
- libstdC++
- VS
Tutti e tre di questi sono sottili involucri attorno Unix Time, che conta il numero di di secondi trascorsi dalle 00:00:00 Coordinated Universal Time (UTC), giovedì 1 gennaio 1970, senza contare i secondi bisestili.
Tutti si basano su un tipo integrale a 64 bit con segno. Nessuno di loro è stabile. libC++ ha un periodo di tick di microsecondi. libstdC++ ha un periodo di tick di nanosecondi e VS ha un periodo di tick di 0,1 microsecondi.
Nel caso sia utile, here is a paper che dimostra una certa formula per sfruttare l'epoca non specificata ma comune per convertire avanti e indietro dal calendario civile senza passare per time_t
.
Il vantaggio di utilizzare std::chrono::system_clock::from_time_t
è che è garantito il funzionamento dallo standard. Lo svantaggio è che in pratica ti limiterà alla precisione di un secondo (sebbene quella precisione non sia specificata).
Il vantaggio di assumere l'epoca di std::chrono::system_clock
per essere 1970-01-01, anche se non è specificato, è che si sarà corretti su tutte le implementazioni note e la precisione disponibile per questa alternativa è molto superiore a quella fornita per time_t
.
- 1. C++ Come faccio a convertire un std :: chrono :: time_point a long e back
- 2. Ottieni il numero corrente di ore e minuti utilizzando chrono :: time_point
- 3. Quando è std :: chrono epoch?
- 4. C++ 11 come stampare l'orologio ad alta risoluzione time_point
- 5. La differenza tra due istanze time_point non è una durata?
- 6. Conversione di steady_clock :: time_point in time_t
- 7. Ottieni l'ora corrente in secondi da Epoch su Linux, Bash
- 8. Ottieni tempo POSIX/Unix in secondi e nanosecondi in Python?
- 9. Come convertire in modo affidabile POSIX epoch seconds in EST/EDT in modo affidabile, con funzioni pure
- 10. Ci sono strutture in std :: chrono per assistere con l'iniezione system_clock per il test dell'unità
- 11. Come convertire un timestamp di epoca epocale (doppio) in uno std :: chrono :: time_point?
- 12. Come creare un'istanza java.util.Calendar in epoch time?
- 13. Come convertire il tempo Epoch all'anno
- 14. modo più elegante per combinare crono :: time_point da ore, minuti, secondi, ecc
- 15. Conversione tempo Epoch nella datetime
- 16. DateTime, the Epoch and DocumentDb
- 17. Moment.js e Unix Epoch conversione
- 18. come installare posix in php
- 19. C++ 11: incremento time_point di un secondo
- 20. Semantica S_IRUSR in POSIX
- 21. Segnali e segnali POSIX
- 22. sono tubi posix leggeri?
- 23. Ottenere data leggibile da Epoch in variabile
- 24. Stampa Epoch Time in diverse lingue
- 25. Come convertire un PCRE in POSIX RE?
- 26. Come rinominare durevolmente un file in POSIX?
- 27. Localizzare Epoch Time con pytz in Python
- 28. Come utilizzare Epoch Time con i dati delle serie Highcharts?
- 29. Java 8: come creare un ZonedDateTime da un valore Epoch?
- 30. come convertire unix epoch time to date string in hive