1

CDateとparseExactが、2012年3月10日として表される今日の日付(10月3日)を2012年10月3日に変更するのはなぜですか?私はWindows7、VS2012を使用しています。コントロールパネルの設定はすべてUK/GBです。行を追加してみました

    System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-GB", True)
    System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en-GB", True)

効果はありません。

これが私のコードです-私が望む日付を取得するために、テキストバージョンの日と月を交換することに頼らなければならないことがわかります

    dim txtDate As String = "03/10/2012"
    Dim strOriginalDate As String = txtDate   ' 03/10/2012
    Dim dtmdate1 As Date = CDate(txtDate)     ' #10/03/2012#
    Dim dtmdate2 As Date = DateTime.ParseExact(txtDate, "dd/MM/yyyy", Nothing) ' #10/03/2012#
    txtDate = Split(txtDate, "/")(1) & "/" & Split(txtDate, "/")(0) & "/" & Split(txtDate, "/")(2)
    Dim dtmdate3 As Date = CDate(txtDate)     ' #3/10/2012#
4

1 に答える 1

1

デバッガーの[ローカル]ペインで日付の値を確認していると思われます。実際に値を書き出すと、必要に応じて値が表示されます。

Module Module1

    Sub Main()
        System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-GB", True)
        System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en-GB", True)

        Dim txtDate As String = "03/10/2012"
        Dim strOriginalDate As String = txtDate
        Dim dtmdate1 As Date = CDate(txtDate)
        Console.WriteLine(dtmdate1.ToString("dd MMM yyyy"))

        Dim dtmdate2 As Date = DateTime.ParseExact(txtDate, "dd/MM/yyyy", Nothing) ' #10/03/2012#
        Console.WriteLine(dtmdate2.ToString("dd MMM yyyy"))
        txtDate = Split(txtDate, "/")(1) & "/" & Split(txtDate, "/")(0) & "/" & Split(txtDate, "/")(2)

        Dim dtmdate3 As Date = CDate(txtDate)
        Console.WriteLine(dtmdate3.ToString("dd MMM yyyy"))

        Console.ReadLine()

    End Sub

End Module

もちろん、月と日を入れ替えたため、出力の最終行は希望どおりではありません。

en-GBに設定されたW7x64でVS2012RCを使用してテストされました。VSのロケールを設定してテストすることをお勧めします:http://msdn.microsoft.com/en-US/library/9cytz106%28v=vs.80%29.aspx

日付リテラルとしての日付の表示は、データリテラルの定義方法と完全に一致しています。たとえば、「日付データ型(Visual Basic) 」の「フォーマット要件」サブセクションを参照してください。

于 2012-10-03T20:32:49.573 に答える