• 締切済み

システム時刻、環境変数TZの関係について

こんにちは。 システム時刻とTZ環境変数の関係について教えてください。 環境変数TZ はAUTOECEC.BAT に「SET TZ=JST」などと記述するなどして定義することができます。ただし、定義してもタスクトレイの時刻は変わりません。 C、C++でプログラムした場合、現在時刻を得るためにCTime::GetCurrentTime などを使用すると思います。 これらのAPIでは、環境変数TZが定義されている場合は それを使用し、定義されていなけばシステム時刻を 取得するような仕様のようです。 上記のような理由から、システム時刻よりも環境変数TZが優先されるのには、理由があるのでしょうか。 また、環境変数TZが定義されている場合であっても システム時刻を取得する方法はあるのでしょうか。 よろしくお願いします。

みんなの回答

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

>システム時刻よりも環境変数TZが優先されるのには、理由があるのでしょうか。 昔のUNIX等は、TZ(タイムゾーン)の設定自体がOSのシステム時刻の決定条件だったからです。 >環境変数TZが定義されている場合であっても システム時刻を取得する方法はあるのでしょうか。 タイムゾーンも取得できるから、それから逆算すれば同じでは?

関連するQ&A

  • CTime及び環境変数TZについて

    VC++5.0SP3で開発をしています。 アメリカ東部標準時間を取得するため、 _putenv("TZ=EST+5"); _tzset(); CTime Time = CTime::GetCurrentTime(); としてみましたが、取得できるのは日本の現在時刻です。 もちろん日本の時間から時差を計算して東部標準時間を求めることもできるのですが、TZを反映させ、GetCurrentTime()で現地時刻を得たいのです。 なぜ上記の方法で取得できないのでしょうか? ご存知の方ぜひご教示ください。

  • コマンドプロンプトの環境変数

    『コントロールパネル』→『システム』→『システムのプロパティ』→『詳細』タブ→『環境変数』→『システム環境変数』で設定した環境変数が、 "C:\WinNT\System32\CMD.EXE"を起動して、 "SET"コマンドで環境変数を確認すると設定された値と違っています。 何故でしょうか?

  • 環境変数って何ですか?

    Javaで環境変数でPATHを追加しますが、 これを設定するとJavacでコンパイルできる事は分かります。 ですが、どういったシステムになっているのでしょうか? Win98の「Autoexec.bat」にPATHを追加するのと、Win2000の環境変数でPATHを追加する場合で教えて頂けないでしょうか。

    • ベストアンサー
    • Java
  • 環境変数について

    ◇環境変数をセットしたい場合 WindowsXPを使っています。 コントロールパネル-システムの環境変数から設定しましたが、 ログオフや再起動しないと反映されないのでしょうか? ユーザー環境変数やシステム環境変数の違いも影響有るのでしょうか? AA C:\ PATH %AA%;として、%で括れば、登録済みの環境変数も使えるのでしょうか?

  • システム環境変数と、ユーザー環境変数。

    こんにちわ。 昨夜からちょっと困ってパニックになっています。 1から書いていきます。 読みにくかったら、申し訳ございません。 コンパイルしたJanken.classが、 C:\java>java Janken で作動せず、 java.lang.NoClassDefFoundErrorのエラーが出ました。 そこで、参考書を見て環境変数に問題があるということなので、 環境変数を触ったのですが、それでも上手く行かずネットで検索をかけて調べたところ、 "システム環境変数"と"ユーザー環境変数"の設定を変えました。(osは、XPです。) それ以来、 ----------------- C:java>java Janken 'java'は、内部コマンドまたは、外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\java ---------------- と、なります。 コンパイルも出来ません。 「システム環境変数には、触れてはいけない」と 検索した先のページには、書かれていまして、 ユーザー環境変数と間違って、システム環境変数を変えていたことになります。 元に戻すには、PCの初期化が必要なのでしょうか? また、参考書の通りコマンドプロンプトに打つとこう表示されます。 ----------- C:\Documents and Settings\Owner>set CLASSPATH=%CLASSPATH%;c:\java\bin C:\Documents and Settings\Owner>echo %CLASSPATH% %CLASSPATH% C:\Documents and Settings\Owner> ------------- また、JAVAの入ってるフォルダは、 C:\JAVAで、ローカルディスクCの中です。 JAVAフォルダの中は、j2sdk-1_4_0-doc-jaフォルダと、J2SEフォルダ、 Janken.classがあります。 もう何が正しくて、何が誤りなのかもわかりません。 どうか、よろしくお願いいたします・・・・。

    • ベストアンサー
    • Java
  • システム環境変数を使いたい

    コマンドプロンプトで、cdコマンドでカレントディレクトリを移動する際、 いちいちパスを入力するのが面倒だったので、環境変数というものがあるというのを知り、 マイコンピュータ右クリック→プロパティ→詳細設定→環境変数→システム環境変数→Path に、;c:\xampp\mysql\bin と新たに追加しました。 これを使ってcdコマンドを次のように入力しました。 cd Path 指定されたパスが見つかりません。 私のやった方法でシステム環境変数の設定は間違っていないでしょうか? また、cdコマンドの入力の仕方はこうで合っているのでしょうか?

  • 環境変数の取得

    はじめまして。VB6.0で開発を行っております。 その中で環境変数の取得をしたいと思っております。 環境変数の取得には、「Environ」関数を使用しております。この関数では、ユーザが設定した環境変数は取得できないのでしょうか? システムをインストールする際に環境変数の設定を行っております。その後、システムでその環境変数を取得したいと思っているのですが、うまく取得できません。 「Path」とかであれば取得できるのですが・・・。 それと、マイコンピュータのプロパティから環境変数を調べてみたところちゃんと設定されています。 よろしくお願いします。

  • BATで環境変数へ登録

    MSDOSのBATで、コマンドの実行結果を環境変数へ登録 することは可能でしょうか? 例えば、 C:\> CD と行うと C:\ が返ってきますが、この値を環境変数に 登録出来ればと思います。 よろしくお願いします。

  • システム環境変数Pathについて

    borland C をインストールしたあと、システム環境変数PathにC:¥bcc55¥Bin;を追加するところを誤って、すでにあるパスを消してしまいました。 どうすればいいでしょうか?

  • ユーザー環境変数の一覧

    システム環境変数とログインしている環境変数それと、 存在する全てのユーザーに対する環境変数を取得するプログラムをC言語作成したいのですが、どうすればよいのでしょうか? OSはWindows2000です。 言語は問いません、VC++2005かC#かVB.NETのどれでも構いません。