Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       timegm, timelocal - gmtime と localtime の逆関数

書式

       #include <time.h>

       time_t timelocal(struct tm *tm);

       time_t timegm(struct tm *tm);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       timelocal(), timegm(): _BSD_SOURCE || _SVID_SOURCE

説明

       timelocal()  関数と timegm()  関数は、それぞれ localtime(3)  関数と gmtime(3) 関数の逆関数
       である。

準拠

       これらの関数は非標準で  GNU  の拡張である。  BSD  系にも存在する。  これらの使用は避けるこ
       と。「注意」参照。

注意

       timelocal()   関数は POSIX の標準関数 mktime(3)  と同じものである。 ので、これを使う理由は
       ないはずである。

       timegm()   を移植性があるようなかたちで実現するには、  TZ  環境変数を  UTC  に設定してから
       mktime(3) を呼んで、 TZ の値を取得すればよい。 例えば次のようになるだろう。

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

           time_t my_timegm (struct tm *tm)
           {
               time_t ret;
               char *tz;

               tz = getenv("TZ");
               if (tz)
                   tz = strdup(tz);
               setenv("TZ", "", 1);
               tzset();
               ret = mktime(tm);
               if (tz) {
                   setenv("TZ", tz, 1);
                   free(tz);
               } else
                   unsetenv("TZ");
               tzset();
               return ret;
           }

関連項目

       gmtime(3), localtime(3), mktime(3), tzset(3)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。