Qui è il tipo di tempo di formattazione che sto cercando:Utilizzando strftime in C, come posso formattare il tempo esattamente come un timestamp Unix?
2009-10-08 04:31:33.918700000 -0500
Attualmente sto usando questo:
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %Z", ts);
che dà:
2009-10-11 13:42:57 CDT
che è vicino, ma non esatto. Non riesco a trovare nulla sulla visualizzazione di -0500
alla fine. Inoltre sto prendendo i secondi come un int.
Come posso risolvere questi due problemi?
'% z' è ancora non standard =) – gnud
Grazie, questo è il più vicino che ho ottenuto finora. Il '%% 06u' mi sta restituendo dei dati inutili, ma il resto funziona bene. P.S Sì, so che% z non è standard, ma lo prendo :) –
@aditya: È strano ... Il codice sopra dovrebbe funzionare. Assicurati di fornire la seconda chiamata snprintf() con un valore di microsecondi senza segno appropriato da utilizzare per il formato% 06u. Puoi provare a stampare il risultato dopo la chiamata strftime(), dovresti vedere il tuo output finale tranne la sequenza% 06u dopo il punto. – unwind