我曾建议扩大由Bart卡利斯托修复DD MMM yyyy格式问题(在澳大利亚,我们还使用英国日期格式dd/mm/yy)
我还经常需要在澳大利亚和美国的日期格式之间进行转换。
此代码解决了这个问题(我的版本是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
喊你需要设置文化的功能之前,我这样做从01
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)
得到访问者的国后
设置AU或GB培养结果之后是2010
8月18日设置美国文化的结果2010年8月18日
后
Adam您是否同意这解决了您所指的格式问题?
感谢巴特,这是非常不错的代码。
不要忘记在 后继续添加Dim cult As System.Globalization.CultureInfo
继承System.Web.UI。第
问计于错误的结果(与星期几字符串),并试图将其Munge时间成可接受的形式(通过删除星期几)是一个非常贫穷的替代品只需简单地问一个日期字符串格式适当的第一位。 – 2009-09-08 17:34:49
@ Stephen:我同意。但你如何知道当前文化的正确格式?年,月和日的顺序,分隔符字符等等。 – 2009-09-08 21:11:22
@大卫 - 完全正确,你不能。如果它很重要,则必须研究每种文化的适当格式,正如Microsoft对cultureInfo.DateTimeFormat.LongDatePattern所做的那样。 – 2009-09-08 21:33:45