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

发布于 2025-01-08 02:53:32 字数 145 浏览 1 评论 0原文

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

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

I've been using the ACE_OS::gettimeofday() in a program to get the current time. From what I know, ACE always use UTC internally. However, sometimes I do need to convert the UTC time to a local time based on the system's timezone.

Is it possible to do this conversion without using any platform-specific technique? Any suggestion would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可遇━不可求 2025-01-15 02:53:32
    #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 变量根据您的时区保存纪元

    #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;
   }

I use the above in Unix/Linux to convert to local time. m_eventTime variable hold the epoch as per your timezone

月依秋水 2025-01-15 02:53:32

@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

@ArunMu

By some googling, which follows your answer of course, I found the following solution, thanks!

time_t temptime = ACE_OS::gettimeofday().sec();

tm* timeinfo = ACE_OS::localtime(&temptime); // local time

tm* timeinfo = ACE_OS::gmtime(&temptime);    // UTC/GMT time
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文