具有特定文化的DateTime解析不起作用

时间:2016-03-26 23:04:52

标签: vb.net datetime culture

我的网站有两种语言,英语和阿拉伯语。由于我的Windows使用英语,当网站处于“en-US”文化时,一切正常,但是当我改为“ar-JO”时,我开始获得例外。

然后我尝试用特定的文化(“en-US”)解析每个日期。我的问题是即使这样也行不通。

DateTime.Parse(txt_LoginTime.Text,New System.Globalization.CultureInfo("en-US"))

当我使用上面没有文化的代码时,我得到一个例外,当我将它与文化一起使用时,我得到以下输出:

3/27/2016 12:00:00 ص

现在问题在于代表AM / PM的阿拉伯字母。据我了解,因为我使用的是“en-US”文化,所以这应该是全英文的。任何人都可以帮助识别问题的根源以及如何解决问题吗?

1 个答案:

答案 0 :(得分:0)

我认为你有一小时12的AM,这没有多大意义。您可以使用以下代码创建自定义文化,该文化将使用美国数字和阿拉伯语AM / PM

Imports System.Globalization
Module Module1

    Sub Main()
        Dim input As String = "3/27/2016 00:00:00 ص"
        Dim culture As New MyCulture
        Dim _date As DateTime = DateTime.ParseExact(input, "M/dd/yyyy H:mm:ss t", culture)
    End Sub

End Module

Public Class MyCulture
    Inherits CultureInfo

    Sub New()
        MyBase.New(CultureInfo.InvariantCulture.Name)
        Me.DateTimeFormat.AMDesignator = "ص"
        Me.DateTimeFormat.PMDesignator = "م"
    End Sub
End Class