本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[VC10]環境変数TZのデフォルト値の誤記とサンプル(TIMES.C)のミスについて

文書番号: 402035

最終更新日: 2003/11/11


この資料は以下の製品について記述したものです。


概要

この資料は、Visual C++ 1.0 のアドバイザの誤記とサンプルプログラム (TIMES.C) の ミスについて記述したものです。

詳細

アドバイザには環境変数 TZ のデフォルト値は "PST8DST" となっていますが、 "JST-9" の誤りです。
以下の "PST8PDT" を全て "JST-9" に訂正してください。

環境変数 TZ のデフォルト値の誤記 の箇所

  • _daylight, _timezone, _tzname のヘルプ
       TZ 値を明示的に設定していない場合には、デフォルト値の "PST8PDT" が使用
       されます。
    
  • tzset() のヘルプ
       現在の TZ 値が設定されていない場合には、デフォルトは PST8PDT です。
                  ...
    
  • _daylight のデフォルトは 1、_timezone のデフォルトは 28,800、_tzname [ 0 ]
       のデフォルトは PST、_tzname [ 1 ]のデフォルトは PDT です。これらは、
       "PST8PDT" に対応します。
    
TIMES.C のコメント
    /* 環境変数 TZ から時間帯の設定。TZ が設定されていない場合には、PST8PDT
    * (太平洋時間帯、夏時間帯)が使用されます。
    */
サンプル (TIMES.C) を動作させると「万国標準時からのゾーン差」 が 64996 と表示されるのは、printf に与える引数に誤りがあるためです。 VC++ アドバイザサンプル( times.c ) の結果
    MS-DOS形式の時間:                 15:51:15
    MS-DOS形式の日付:                 11/15/93
    UTC 1/1/1900 からの経過時間(秒): 753346275
    UNIX形式の時間と日付:             Mon Nov 15 15:51:15 1993
    万国標準時:                       Mon Nov 15 06:51:15 1993
    12 時間形式:                       03:51:15 PM
    秒の小数部(ミリ秒):             50
    万国標準時からのゾーン差(分):   64996            <- 値がおかしい
    タイムゾーン名:                   JST
    夏時間:                           NO
    クリスマス:                       Wed Dec 25 12:00:00 1991
    今日は 1993年11 月 15 日 (Monday) です。
「万国標準時からのゾーン差(分)」が正しく表示されないのは TIMES.C のミスです。 お手数ですが、以下の行 (63 行目付近) の printf の第1引数中の '%u' を '%d'
に変更して下さい。
  <誤>  printf( "万国標準時からのゾーン差(分):\t\t%u\n", tstruct.timezone );
                                                     ~
  <正>  printf( "万国標準時からのゾーン差(分):\t\t%d\n", tstruct.timezone );
                                                      ~

詳細

  • Visual C++ は米国 Microsoft Corporation の商標です。

Keywords: KBBUG KB402035
Technology: kbAudDeveloper kbVCsearch

inserted by FC2 system