你可以寫一個函數,試圖解析日期的三種格式,並返回可使用Date.TryParseExact與custom date and time formats解析第一個:
Public Function ParseMyDate(dateString As String) As Date
Dim d As Date
If Date.TryParseExact(dateString, "MMMM dd", CultureInfo.InvariantCulture, DateTimeStyles.None, d) Then Return d
If Date.TryParseExact(dateString, "dd-MM", CultureInfo.InvariantCulture, DateTimeStyles.None, d) Then Return d
If Date.TryParseExact(dateString, "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, d) Then Return d
Return Nothing 'you could throw an exception here instead
End Function
用法:
Dim d1 As Date = ParseMyDate("June 03")
Dim d2 As Date = ParseMyDate("11-12")
Dim d3 As Date = ParseMyDate("11-12-2014")
Debug.WriteLine(d1.ToString("yyyy/MM/dd"))
Debug.WriteLine(d2.ToString("yyyy/MM/dd"))
Debug.WriteLine(d3.ToString("yyyy/MM/dd"))
輸出:
2014/06/03
2014/12/11
2014/12/11
謝謝先生。它可能在像'格式(日期,格式字符串)'這樣的單個代碼'' – Sathish
我不確定這是一個問題還是一個評論,但是你不能在一行代碼中這樣做,特別是不使用格式方法 –
那麼我有一個疑問先生。之前我只使用格式字符串,只是如何將6月03日轉換爲03/06-2014,但爲什麼它不轉換11-12至11-12-2014 – Sathish