将字符串转换为日期

时间:2012-03-21 12:44:43

标签: vb.net string date

我有一个Web服务,它接收这种格式的日期dd / MM / yyyy。

我意识到它会崩溃,因为有时我会像2012年1月1日这样的日期。

我无法控制网络服务收到的内容。

我试过

    myDate = cDate(myString)

    myDate = Convert.toDatetime(myString)

    myDate = DateTime.ParseExact(myString, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None)

    myDate = Convert.ToDateTime(myString.ToString("dd/MM/yyyy"))

没有任何作用,所以有任何优雅的方法可以做到这一点,或者当它是这样的日期时我必须拆分并添加“0”

谢谢

3 个答案:

答案 0 :(得分:4)

这有效:

myDate = DateTime.ParseExact(myString, 
                             "d/M/yyyy", 
                             CultureInfo.InvariantCulture, 
                             DateTimeStyles.None)

它也适用于“01/02/2012”,“21/1/2012”,“1/11/2012”和“12/12/2012”。

答案 1 :(得分:1)

怎么样

DateTime date = DateTime.ParseExact(dateAsString, "d/M/yyyy", CultureInfo.InvariantCulture)

答案 2 :(得分:0)

访问SQL日期查询已解决

转换字符串日期以访问SQL日期

尝试从我的项目中的SQL查询中选择数据时,日期格式为:31/01/2014 04:46:54,字段列在数据库中声明为datetime ...

然而当我使用sql语句时fldPlaceOrderDate =#31 / 01/2014 04:46:54# 它不会返回任何行。当我在microsoft访问中查看列时,它将以相同的方式显示它。所以我总结说我的vb项目中的SQL必定存在错误吗?

所以我将我的vb.net项目中的SQL复制到访问查询构建器sql视图中,并且它也没有返回任何行。所以我使用MS Access设计视图再次手动构建SQL。我格式化了相同的日期#31 / 01/2014 04:46:54#...这次它返回了行,它显示日期实际上格式化为MM / dd / yy HH:mm:ss

所以我在我的项目

中尝试了以下内容

“SELECT fldReference”& VBCRLF& _ “来自tblOrders”& VBCRLF& _ “WHERE fldPlaceOrderDate =#”& CDATE(“31/01/2014 04:46:54”)。ToString(“MM / dd / yy HH:mm:ss”)& “#”;

这解决了问题!