如何在ACE中获取本地时间而不是UTC时间?

时间:2012-02-22 08:10:56

标签: c++ timezone cross-platform ace

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

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

2 个答案:

答案 0 :(得分:2)


    #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变量按照您的时区保存纪元

答案 1 :(得分: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