日本時間(C言語版)

環境変数を使った時間の取得(C言語版)

環境変数をセットして localtime を取得すれば日本時間が求まるって事は
解っていたので、そのままプログラムにしてみました。


ソース

#include <stdlib.h>
#include <time.h>

main() {
  int ans;
  time_t ct1;
  struct tm *t;

  time(&ct1);

  ans = setenv("TZ","JST-9",1);
  if (ans == 0) {
    t=localtime(&ct1);
    printf("%4d/%02d/%02d,%02d:%02d\n",
          1900+t->tm_year,
          1+t->tm_mon,
          t->tm_mday,
          t->tm_hour,
          t->tm_min
          );
  } else {
    t=gmtime(&ct1);
    printf("%4d/%02d/%02d,%02d:%02d (gmt)\n",
          1900+t->tm_year,
          1+t->tm_mon,
          t->tm_mday,
          t->tm_hour,
          t->tm_min
          );
  }
}

一応、環境変数にセットした時に失敗する事も考えられるので、
その時は、標準時刻を表示する様に対応しました。