Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > time_t time() как получить время с милисекундами?


Автор: vdm 21.3.2008, 16:16
Привет. Как получить полную дату с милисекундами?
                time_t date;
        time(&date);

не выдаёт желаемое...

Автор: bsa 21.3.2008, 16:23
vdm, тебе придется смотреть в сторону API твоей системы.
В линуксе, например, можно использовать gettimeofday. Под Windows можно применить GetSystemTimeAsFileTime

Автор: Alca 9.7.2010, 16:18
http://www.rsdn.ru/forum/cpp/2099875.flat.aspx

Добавлено @ 16:22
А чё нет универсальной функции под винду и под линух, чтоб можно было узнать миллисекунды? 

Автор: Ockonal 11.7.2010, 06:36
Нет, можно использовать boost для этого, или просто почитать их http://www.boost.org/doc/libs/1_43_0/doc/html/date_time/posix_time.html:
Цитата

ptime microsec_clock::local_time()
Get the local time using a sub second resolution clock. On Unix systems this is implemented using GetTimeOfDay. On most Win32 platforms it is implemented using ftime. Win32 systems often do not achieve microsecond resolution via this API. If higher resolution is critical to your application test your platform to see the achieved resolution.
ptime t(microsec_clock::local_time());

Пример с бустом:
Код

#include <boost/date_time/posix_time/posix_time_types.hpp>
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;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)