Public Shared Sub Main()
Dim dt As DateTime = DateTime.Now
Dim myformat() As String = {"d", "D", _
"f", "F", _
"g", "G", _
"m", _
"r", _
"s", _
"t", "T", _
"u", "U", _
"y", _
"dddd, MMMM dd yyyy", _
"ddd, MMM d ""'""yy", _
"dddd, MMMM dd", _
"M/yy", _
"dd-MM-yy"}
Dim mydate As String
Dim i As Integer
For i = 0 To myformat.Length - 1
mydate = dt.ToString(myformat(i), DateTimeFormatInfo.InvariantInfo)
Console.WriteLine(String.Concat(myformat(i), " :", mydate))
Next i
' Output.
'
' d :08/17/2000
' D :Thursday, August 17, 2000
' f :Thursday, August 17, 2000 16:32
' F :Thursday, August 17, 2000 16:32:32
' g :08/17/2000 16:32
' G :08/17/2000 16:32:32
' m :August 17
' r :Thu, 17 Aug 2000 23:32:32 GMT
' s :2000-08-17T16:32:32
' t :16:32
' T :16:32:32
' u :2000-08-17 23:32:32Z
' U :Thursday, August 17, 2000 23:32:32
' y :August, 2000
' dddd, MMMM dd yyyy :Thursday, August 17 2000
' ddd, MMM d "'"yy :Thu, Aug 17 '00
' dddd, MMMM dd :Thursday, August 17
' M/yy :8/00
' dd-MM-yy :17-08-00
End Sub 'Main
End Class 'MainClass
沒錯啊,人家寫的也是 yyyy-mm-dd 格式,可是人家可以正確返回結果,我的就不可以。慢點,我再觀察一下。難道……難道是大小寫緣故?沒錯,asp.net剛發布的時候,就宣布過大小寫區分要逐步被提到重要位置上來,徹底改變asp時代大小寫不分的混亂狀態。也就是說,這裡的 mm 要寫成 MM 才可以。我抱著試試看的心理修改了,一遍通過,可以成功的返回 2004-08-23 了。求知不能就此結束,我馬上又全部改成大寫:YYYY-MM-DD,結果發現返回 YYYY-08-DD ,也就是說,yyyy-MM-dd 這種方式是唯一可用的方案。