2012-02-22 185 views
1

我一直在程序中使用ACE_OS :: gettimeofday()来获取当前时间。据我所知,ACE始终在内部使用UTC。但是,有时我需要根据系统的时区将UTC时间转换为本地时间。如何在ACE中获取本地时间而不是UTC时间?

是否可以在不使用任何平台特定技术的情况下进行此转换?任何建议,将不胜感激。

回答

2

@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 
2
 

    #include &lttime.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变量保持划时代按您的时区

+0

ACE应该具有类似的功能 – Arunmu 2012-02-22 08:22:47

相关问题