我有一个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”
谢谢
答案 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”)& “#”;
这解决了问题!