[Armadillo:07696] 時刻情報がlocaltime()を使ってもJSTにならない

nakayama junichi email@hidden
2011年 11月 4日 (金) 16:25:57 JST


いつもお世話になっております。
ONICOSの中山と申します。

Armadillo-440で作業をしているのですが、
時刻関連の処理で問題が起きました。

以下のような処理をArmadillo上で行っています。
    char    date_string[16];
    char    time_string[16];
    struct timespec ts;
    struct tm       *tm_struct = NULL;
    clock_gettime(CLOCK_REALTIME, &ts);
    tm_struct = localtime(&(ts.tv_sec));
    sprintf(date_string, "%04d/%02d/%02d",
            tm_struct->tm_year+1900, tm_struct->tm_mon+1, 
tm_struct->tm_mday);
    sprintf(time_string, "%02d:%02d:%02d.%03d",
            tm_struct->tm_hour, tm_struct->tm_min, tm_struct->tm_sec, 
(ts.tv_nsec/1000000)%1000);

ここで、日本標準時の日付と時刻を表す文字列が得られるのを期待しているのですが、 

時刻が9時間前のUTCになってしまいます。

このソースをATDE3上でネイティブコンパイルして、ATDE3上で実行した場合は
UTCではなく、JSTが得られます。

Armadillo上の環境変数TZは以下のようになっています。
TZ=JST-9

何かお分かりのことがありましたら、
何でも結構ですので、ご教示のほどお願いいたします。

-----------------------------------
中山 純一(Nakayama Junichi)
オニコス株式会社
TEL:03-5850-4345
FAX:03-3801-3051
e-mail:email@hidden
-----------------------------------
 




armadillo メーリングリストの案内