掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
時間表示を変換するには? (ID:145678)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 0:13.12 として表示できるよう良い方法がありましたらお教えください。 DataGridView に表示する際に、日付書式を設定していますか? 日付を文字列として表わす場合は、自動変換にまかせるのではなく、 必ず書式を割り当てるようにしてください。たとえば今回の場合、 DataGridView1.Columns(0).DefaultCellStyle.Format = "mm:ss.ff" などと書く事ができます。 > 時間表示の 0:13.12 部分が 1899/12/30 0:00 となってしまいます。 その 00.13.12 は、内部で倍精度浮動小数点型として管理されており、 数値としてみてみると、約 1.51851851851852E-04 という値になります。 それゆえ、OLEDB などを介して「OLE の日付型」としてみた場合には、 下記のような変換が発生することになります。 Dim rawValue As Double = 1.51851851851852E-04# Dim oleDate As Date = Date.FromOADate(rawValue) '1899/12/30 0:00:13 TextBox1.Text = oleDate.ToString("g") '00:13.12 TextBox2.Text = oleDate.ToString("mm:ss.ff") '1899/12/30 00:00:13.1200000 TextBox3.Text = oleDate.ToString("yyyy/MM/dd HH:mm:ss.fffffff") ----- <OLE の日付型> 「8 バイトの浮動小数点数」として管理されている(そのため、誤差が含まれる事に注意!)。 内部値の整数部は、「1899/12/30 からの経過日数」を示す値になっている。 絶対値の小数部は時刻部を表し、正午であれば0.5、午前3時ならば0.25となる。 最大日付は「9999/12/31 23:59:59」、最小日付は「0100/01/01 00:00:00」。 <.NET の日付型> 「8バイトの整数型」として管理されている(そのため、格納誤差が発生しない)。 内部値は、「0001/01/01 00:00:00.0000000」からの経過時間を表しており、 内部値が 1 増えるごとに、そこから 100ナノ秒進んだ日時を表す。 最大日付は「9999/12/31 23:59:59.9999999」、最小日付は「0001/01/01 00:00:00.0000000」。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.