[Armadillo:07698] Re: 時刻情報がlocaltime()を使ってもJSTにならない
Chris McHarg
email@hidden
2011年 11月 4日 (金) 20:00:21 JST
> tzname[0]とtimezoneが私のAramdilloの環境ですと
> UTCになっていました。
以下のようなテスト用の小さいプログラムを作って
確認してみるのはいかがでしょうか。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <time.h>
int main(void) {
char date_string[16];
char time_string[16];
struct timespec ts;
struct tm *tm_struct;
int ret;
ret = clock_gettime(CLOCK_REALTIME, &ts);
if (ret != 0) {
fprintf(stderr, "clock_gettime() failed: %s\n",
strerror(errno));
exit(1);
}
tm_struct = localtime(&ts.tv_sec);
if (tm_struct == NULL) {
fprintf(stderr, "localtime() failed\n");
exit(1);
}
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.%03ld",
tm_struct->tm_hour,
tm_struct->tm_min,
tm_struct->tm_sec,
(ts.tv_nsec/1000000)%1000);
printf("TZ=%s\n", getenv("TZ"));
printf("%s %s\n", date_string, time_string);
exit(0);
}
armadillo メーリングリストの案内