Twitterに投稿 はてなブックマークに追加 Yahoo!ブックマークに追加 Google Bookmarksに追加

目次 >> C、C++ >> Tips

Unix系OSでタイムゾーンを取得するには?

gettimeofday()関数を使う。必要なヘッダファイルは、

#include <sys/time.h>

使い方は、

struct timeval tv;
struct timezone tz;
gettimeofday(&tv,&tz); 
printf("%4d/%02d/%02d (%s)  %02d:%02d:%02d %02.2d00 (%s)", 
        (tptr->tm_year)+1900, tptr->tm_mon+1, tptr->tm_mday,
        weekday[tptr->tm_wday], tptr->tm_hour, tptr->tm_min, tptr->tm_sec, -tz.tz_minuteswest/60,localtime(&timer)->tm_zone);

とすると、

2007/07/09 (Mon) 12:21:12 -0800 (PDT)

のような実行結果が得られる。最後の2つが、グリニッジ標準時との差で、PDTというのがゾーン名である。


最終更新日


本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて17.04、18.04のようにバージョン番号をつけて区別しています。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2014 Chikuma Engineering Co., Ltd. All Rights Reserved.