我一直在程序中使用ACE_OS :: gettimeofday()来获取当前时间。据我所知,ACE总是在内部使用UTC。但是,有时我需要根据系统的时区将UTC时间转换为本地时间。
是否可以在不使用任何特定于平台的技术的情况下进行此转换?任何建议都将不胜感激。
答案 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