将字符串转换为datetime vb.net

时间:2010-01-08 20:10:30

标签: .net datetime

我需要将字符串转换为日期格式。要求是如果选择当前月份,则日期应为getdate。如果选择任何其他月份,则应该是该月的第一个月。 进入的数据是“2010年1月”,“2010年2月”等。 但它应该作为01/01/10或02/01/10

插入到sql server数据库中

4 个答案:

答案 0 :(得分:3)

我认为以下内容应该为您完成这项工作:

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

InvariantCulture确保可以正确解析月份名称。

答案 1 :(得分:1)

DateTime.ParseExact应该能够帮助你进入VB.Net

答案 2 :(得分: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 Server列的类型是DateTime,那么您不必担心格式,jut传递DateTime对象,它将起作用。

答案 3 :(得分: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月”。