Я использую vb.net, и я создаю список месяцев (3 символьное представление), используя следующую функцию.VB.Net Date.ParseExact Culture issue
Public Function getMonths() As Array
Dim months As String = ""
For i = 1 To 12
months += StrConv(MonthName(i, True), VbStrConv.ProperCase) + ","
Next
months = months.Substring(0, months.Length - 1)
getMonths = months.Split(",")
End Function
Это прекрасно работает, так как сайт, который я строю, может менять язык и т. Д. На лету.
Однако при попытке затем изменить месяц назад к числовому значению для обработки с помощью этой функции
Public Function monthToNumber(ByVal monthin As String, ByVal culture As System.Globalization.CultureInfo) As Integer
monthToNumber = DateTime.ParseExact("01/" + monthin + "/1999", "dd/MMM/yyyy", culture).Month
End Function
, то date.ParseExact бросает исключение даты ввода не в действительной строке.
Месяц производит культивирование, поэтому я не могу понять провал. Это происходит только с культурой {pt-PT}. Процесс отлично работает для Испании, Великобритании, Франции, Италии.