「これはヤバかったな」という遅刻エピソード

vb2005で開発を行っています。
調べたのですが、DataGridのことばかりでDataGridViewの話題はあまりなかったので質問させて下さい。
DataGridViewで特定のカラムの表示形式を和暦(平成YY年MM月DD日)にしたいのですが、いざ出力してみると西暦YY年MM月DD日という形式になってしまいます。
以下がコードです。

Imports System.Data.OleDb
Imports System.Globalization
Imports System.Text.RegularExpressions
Imports System.Text

Private Sub PunchDataInq_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

' DataGrid view を和暦表示に
Dim culture As New CultureInfo("ja-JP", True)
culture.DateTimeFormat.LongDatePattern = "ggyy'年'MM'月'dd'日'"
Me.dgv.Columns(0).DefaultCellStyle.Format = culture.DateTimeFormat.LongDatePattern
End Sub
----------------------------------------------------------

この状態でDate型の値をDBから参照すると西暦07年11月06日などが表示されてしまいます。どなたかお気づきの点がございましたらぜひご指摘ください。
よろしくお願いします。

A 回答 (1件)

コントロールパネルで暦が西暦を使うになっているとそのような現象が起きるようです


WinXPの場合 『地域と言語のオプション』の『カスタマイズ』の『日付タブ』の『カレンダーの種類』が西暦系になっていると起きるようです

対策としては アプリケーションのCultureInfo新規に作成してしまう方法です
フォームのLoadイベントなどで
Dim myCI as New CultureInfo("Ja-jp")
Dim myDTFmtInfo as DateTimeFormatInfo = myCI.DateTimeFormat
Dim jpCal as New JapaneseCalender
myDTFmtInfo.Calender = jpCal
myCI.DateTimeFormat = myDTFmtInfo
Application.CurrentCulture = myCI
と言った具合です
    • good
    • 0
この回答へのお礼

ご親切にありがとうございました。
返事の方法の通りで解決しました。PCを調べてみたところ、やはり西暦を使うようになってました。こんな抜け道があるんですね、大変勉強になりました。

お礼日時:2007/11/08 11:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報