我需要将字符串转换为日期格式。要求是如果选择当前月份,则日期应为getdate。如果选择任何其他月份,则应该是该月的第一个月。 进入的数据是“2010年1月”,“2010年2月”等。 但它应该作为01/01/10或02/01/10
插入到sql server数据库中答案 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月”。