1

現在の時刻を取得するために、プログラムで ACE_OS::gettimeofday() を使用しています。私の知る限り、ACE は常に内部的に UTC を使用します。ただし、システムのタイムゾーンに基づいて、UTC 時間を現地時間に変換する必要がある場合があります。

プラットフォーム固有の手法を使用せずにこの変換を行うことは可能ですか? 任意の提案をいただければ幸いです。

4

2 に答える 2

2
    #include <time.h>
    #include < iostream >
    intメイン(){
       time_t tempTime;
       時間(&tempTime);
       struct timeval tv;
       gettimeofday(&tv, NULL);
       long int m_eventTime = temptime - タイムゾーン;

    0 を返します。
   }

上記を Unix/Linux で使用して現地時間に変換します。m_eventTime 変数は、タイムゾーンに従ってエポックを保持します

于 2012-02-22T08:19:28.157 に答える
2

@アルンムー

もちろん、あなたの答えに続くいくつかのグーグルによって、私は次の解決策を見つけました、ありがとう!

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

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

tm* timeinfo = ACE_OS::gmtime(&temptime);    // UTC/GMT time
于 2012-02-23T05:05:09.573 に答える