2010-01-08 32 views
1

我需要將字符串轉換爲日期格式。要求是如果選擇當前月份,日期應該是getdate。如果選擇其他月份,則應該是該月的第一個月。 進入的數據是「2010年1月」,「2010年2月」等。 但它應該被插入到SQL Server數據庫爲01/01/10 02/01/10或將字符串轉換爲日期時間vb.net

回答

0

DateTime.ParseExact Method (String, String, IFormatProvider)

DateTime dt = DateTime.ParseExact(dateString,formatString); 
dt = (dt.Month == DateTime.Now.Month) ? DateTime.Now : dt; 

如果你在循環性能中調用這個函數可能會更好,因爲DateTime.Now是一個相當昂貴的操作,如果你只調用一次DateTime.Now並將它存儲在一個變量中,那麼它會更好。

如果SQL服務器列的類型是DateTime,那麼您不需要擔心格式,只要傳遞DateTime對象,它就可以工作。

3

我認爲下面應該爲你做的工作:

Dim theDate As DateTime = DateTime.ParseExact(input, "MMMM yyyy", CultureInfo.InvariantCulture) 

InvariantCulture可確保月份名稱可以被正確解析。

+0

我該如何申報cultureinfo?它說cultureinfo沒有聲明 – sinae 2010-01-08 20:53:00

+0

@sinae:將'Imports System.Globalization'添加到文件開頭的imports語句中。 – 2010-01-08 21:00:54

0

您可以使用此功能:

Private Function GetDate(ByVal source As String) As DateTime 
    Dim converted = DateTime.Parse(source) 
    If (converted.Year.Equals(DateTime.Now.Year) And converted.Month.Equals(DateTime.Now.Month)) Then 
     GetDate = DateTime.Now 
    Else 
     GetDate = converted 
    End If 
End Function 

它可以進行分析過去了一個月+年值分別爲 「2010年4月」。

相關問題