2010-06-28 21 views
14

Wie kann ich die aktuelle Zeit mit Bibliotheks-Boost bekommen. Ich kann dies tun:Lokale Zeit mit Millisekunden

ptime now = boost::posix_timesecond_clock::local_time(); 
tm d_tm = to_tm(now); 

Aber das letzte Mal Einheit tm Struktur ist an zweiter Stelle und ich in Millisekunden benötigen. Kann ich die aktuelle Zeit mit Millisekunden abrufen?

+0

Benötigen Sie es bis zu einer Genauigkeit von 1 Millisekunde? Weil viele Computer einfach keine so genaue Uhr haben. NTP erreicht nur ~ 10 ms. – MSalters

+1

Erwarten Sie auch nicht, dass dies so funktioniert, wie Sie es von Windows erwarten. Der Scheduler von Windows läuft nur alle 15ms. Wenn Sie es also sehr oft überprüfen, sieht es so aus, als ob die Zeit für 15ms einfriert und dann vorwärts springt. – teeks99

Antwort

18

Blick auf boost::posix_time::microsec_clock::local_time()

#include <boost/date_time/posix_time/posix_time_types.hpp> 

#include <iostream> 

int 
main() 
{ 
    boost::posix_time::ptime time = boost::posix_time::microsec_clock::local_time(); 
    boost::posix_time::time_duration duration(time.time_of_day()); 
    std::cout << duration.total_milliseconds() << std::endl; 

    return 0; 
} 
+0

Hm, okay. Und was ist die richtige Form für den Zugriff auf Daten? – Ockonal

+0

@Ockonal Ich habe mein Beispiel aktualisiert, um zu zeigen, wie man die Millisekunden extrahiert. –

+0

Großartig, danke. – Ockonal

0

Ich denke, der Code sein sollte:

ptime now = boost::posix_time::second_clock::local_time(); 

Ich glaube, Sie vergessen, das "::" in den Codes.^_^

Verwandte Themen