Кажется, у меня продолжаются проблемы с датами. Я использую следующий код:
Dim LocalDateCultureProvider As New CultureInfo(CultureInfo.CurrentCulture.ToString)
Dim CurrentDate As DateTime = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"), System.Globalization.CultureInfo.InvariantCulture)
ExpiryDate = DateTime.ParseExact(strDate, "dd/MM/yyyy", LocalDateCultureProvider)
If DateTime.Compare(ExpiryDate, CurrentDate) < 0 Then
MsgBox("This file has expired.")
Exit Sub
End If
Здесь я читаю strDate как строку, и для одного примера значение этого параметра равно «29/09/2012». Однако в строке ExpiryDate оно преобразуется в #09/29/2012#, так что по сравнению с сегодняшней датой хранится (на мой взгляд, правильно) в CurrentDate как # 6/10/2012 # Я получаю, что условие If истинно (ошибочно).
Кстати, я также пробовал Dim LocalDateCultureProvider As New CultureInfo(System.Globalization.CultureInfo.InvariantCulture.ToString)
просто чтобы увидеть, не было ли это причиной проблемы. Я пытаюсь создать что-то, что будет работать во всех культурах. Независимо от того, каковы локальные настройки, я хочу проверить срок действия, сравнив текущую системную дату с датой истечения срока действия, которую я получаю в виде строки. Пожалуйста, скажите мне, как это сделать, чтобы я мог получить стабильные результаты.
ТИА, Чивда