所以上周,我们的应用程序的工作方式是后端团队将日期存储为YYYY-MM-DD格式的字符串。本周,他们将其更改为DateTime对象而不是字符串。所以现在我只是从我们使用的这个特定DateTime控件的字符串值创建一个DateTime对象。
所以基本上使用我们的自定义控件,就像这样:
mySearchModelObject.fromDate = myDateRangeControl.Values[0]; //string
mySearchModelObject.toDate = myDateRangeControl.Values[1]; //string
现在更像是这样:
DateTime fromDate, toDate;
DateTime.Tryparse(myDateRangeControl.Values[0], out fromDate);
DateTime.Tryparse(myDateRangeControl.Values[1], out toDate);
mySearchModelObject.fromDate = fromDate;
mySearchModelObject.toDate = toDate;
但使用与上周相同的日期范围进行搜索会产生与数据库不同的结果。
我想知道是不是因为我们的日期是“YYYY-MM-DD”作为字符串,但现在无论系统的格式是什么+时间本身它都会得到一个日期时间对象。
那么有没有办法将我的DateTime对象格式化为仍然使用相同的YYYY-MM-DD格式?
答案 0 :(得分:1)
使用DateTime.TryParseExact并提供“yyyy-MM-dd”作为格式字符串。
答案 1 :(得分:1)
您可以fromDate.ToString("yyyy-MM-dd")
将日期格式化为YYYY-MM-DD
请参阅standard上的msdn和custom日期时间格式
参见演示https://dotnetfiddle.net/NZz0HG
如果mySearchModelObject.fromDate
属于object类型,则可以指定DateTime或字符串,无编译器警告/错误。
但是当使用时,可能会使用mySearchModelObject.fromDate.ToString()
得到不同的结果,之前是“2014-12-31”,现在是12/31/2014 12:00:00 AM