I Rozszerzyliśmy na sugestię przez Barta Calixto naprawić dd MMM formacie rrrr problem (tu w Australii używamy także datę UK format dd/mm/rr)
Potrzebuję też często konwersji między formatami dat Aust i US.
Kod ten rozwiązuje problem (moja wersja jest w VB)
Public Shared Function ToLongDateWithoutWeekDayString(source As DateTime, cult As System.Globalization.CultureInfo) As String
Return source.ToString("D", cult).Replace(source.DayOfWeek.ToString(), "").Trim(","c, " "c)
End Function
Przed wywołaniem funkcji należy ustawić kulturę, robię to w ten sposób po otrzymaniu kraj odwiedzającego z http://ipinfo.io
Select Case Country.country
Case "AU"
cult = New CultureInfo("en-AU")
Case "US"
cult = New CultureInfo("en-US")
Case "GB"
cult = New CultureInfo("en-GB")
End Select
Dim date1 As New Date(2010, 8, 18)
lblDate.Text = ToLongDateWithoutWeekDayString(date1, cult)
Po ustawieniu wyniku kultury AU lub GB na 18 sierpnia 2010 r.
Po ustawieniu wyniku kultury amerykańskiej na 18 sierpnia 2010 r.
Adam, czy zgadzasz się, że rozwiązuje to problem z formatowaniem, do którego się odnosisz?
Dzięki Bart to bardzo ładny kod.
Nie zapomnij dodać Dim cult As System.Globalization.CultureInfo
po Dziedziczy System.Web.UI.Strona
Prośba o złym wyniku (ciąg z dnia tygodnia) i próbuje munge go do akceptowalnego postaci (usuwając dzień tygodnia) jest bardzo słaby substytut po prostu prosząc o sformatowanie w odpowiedni sposób ciągu daty. –
@ Stephen: Zgadzam się. Ale skąd znasz właściwe formatowanie aktualnej kultury? Kolejność roku, miesiąca i dnia, znaki separatora itp. Itd. –
@David - dokładnie tak, nie możesz. Jeśli to ma znaczenie, musisz zbadać odpowiednie formatowanie dla każdej kultury, tak jak zrobiła to firma Microsoft z cultureInfo.DateTimeFormat.LongDatePattern. –