none
時間の表示が違う RRS feed

  • 質問

  • こんにちは

     

    VBを勉強したくて、入門書を購入し、早速はじめました。

     

    ところが、最初でつまづいています。

     

    Form1にLanelを2個とButtonを2個配置し、本に書かれている下記のコードを入力しました。

     

    Public Class Form1

        Private Sub CheckButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckButton.Click
            DateLabel.Text = DateTime.Now.ToShortDateString()
            TimeLabel.Text = DateTime.Now.ToLongTimeString()
        End Sub

        Private Sub ExitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitButton.Click
            Me.Close()
        End Sub
    End Class

     

    本の説明では、

       例 2007/10/28   

          19:03:15

    と表示されるようになっています。

     

    ところが実行すると

       例 2007/10/28   

          19:03

    となり、時間の表示がDateTime.Now.ToLongTimeStringと指定しているのにもかかわらず

    意図した表示をしません。

     

    なにか原因に心当たりの方おりましたら、アドバイスをお願いします。

     

    2007年10月28日 10:05

回答

  • OSの時刻の設定が H:mm:ss ではなく、 H:mm になっている為だと思います。

    検証PCのOSがWindowsXPならコンパネから設定・変更可です。ご確認ください。

     

    ===訂正 ( HH → H )2007-10-28 19:35 JP===

    2007年10月28日 10:23

すべての返信

  • OSの時刻の設定が H:mm:ss ではなく、 H:mm になっている為だと思います。

    検証PCのOSがWindowsXPならコンパネから設定・変更可です。ご確認ください。

     

    ===訂正 ( HH → H )2007-10-28 19:35 JP===

    2007年10月28日 10:23
  • ToLongTimeStringは
    http://msdn2.microsoft.com/ja-jp/library/system.datetime.tolongtimestring(VS.80).aspx
    にあるように「現在のカルチャから派生した形式指定情報を使用」します。つまりOSの設定などに依存します。
    もし、OSの設定に依存せずつねに19:03:15と表示したいときには次のように明示的にフォーマットを指定します。
    コード ブロック

    TimeLabel.Text = Format(DateTime.Now,"HH:mm:ss")




    2007年10月28日 12:32
  • ありがとうございました。

     

    設定を直すことにより、無事解決できました。

    2007年10月28日 14:10