我一直在程序中使用ACE_OS :: gettimeofday()来获取当前时间。据我所知,ACE始终在内部使用UTC。但是,有时我需要根据系统的时区将UTC时间转换为本地时间。如何在ACE中获取本地时间而不是UTC时间?
是否可以在不使用任何平台特定技术的情况下进行此转换?任何建议,将不胜感激。
我一直在程序中使用ACE_OS :: gettimeofday()来获取当前时间。据我所知,ACE始终在内部使用UTC。但是,有时我需要根据系统的时区将UTC时间转换为本地时间。如何在ACE中获取本地时间而不是UTC时间?
是否可以在不使用任何平台特定技术的情况下进行此转换?任何建议,将不胜感激。
@ArunMu
通过一些谷歌上搜索,它遵循你的回答当然,我发现下面的解决方案,谢谢!
time_t temptime = ACE_OS::gettimeofday().sec();
tm* timeinfo = ACE_OS::localtime(&temptime); // local time
tm* timeinfo = ACE_OS::gmtime(&temptime); // UTC/GMT time
#include <time.h> #include < iostream > int main(){ time_t tempTime; time(&tempTime); struct timeval tv; gettimeofday(&tv, NULL); long int m_eventTime = temptime - timezone ; return 0; }
我在Unix/Linux中使用上面的转换为本地时间。 m_eventTime变量保持划时代按您的时区
ACE应该具有类似的功能 – Arunmu 2012-02-22 08:22:47