从c#中删除日期时间并保留日期时间格式

时间:2013-05-01 21:18:55

标签: c#

如何从日期时间中删除时间并以datetime格式存储输出?我不想表明时间。

说我有

string d = "2/27/2013 4:18:53 PM"

如何将输出存储在仅包含日期而非时间的DateTime变量中。

我可以使用ToShortDateString()但它返回一个字符串而不是datetime。

我的最终目标是按时间顺序对日期列进行排序,只有在所有条目都采用日期时间格式且不是字符串时才能完成。

4 个答案:

答案 0 :(得分:9)

DateTime结构的Date属性会给你一个日期,但它总是有一个表示午夜(“00:00:00”)的时间组件。如果你是从一个字符串开始,你可以使用这样的东西:

DateTime d = DateTime.Parse("2/27/2013 4:18:53 PM").Date; // 2/27/2013 12:00:00 AM

请确保您对DateTime个对象进行比较(即省略ToString()的所有用法)。

或者,您可以在"sortable" time format

中设置日期格式
string d = DateTime.Parse("2/27/2013 4:18:53 PM").ToString("s");

string d = yourDateTime.ToString("s");

对于上述情况,d将是2013-02-27T16:18:53。按字母顺序排序时,字符串将按时间顺序排列。

答案 1 :(得分:3)

DateTime dt = DateTime.now();      (To get Any Date)

string datewithMonth= dt.ToString("MMMM dd, yyyy");

string onlyDate = DateTime.Parse(datewithMonth).ToShortDateString();

这里我们得到1/1/2014的结果。这样我们就可以在sql上执行select操作:

searchQuery = "select * from YourTableName where ColumnName = '  " + onlyDate + " '   ";

答案 2 :(得分:1)

这很简单:

d.ToString("mm/dd/yyyy");
DateTime date = DateTime.Parse(d);

答案 3 :(得分:1)

如何消除文化中的时间: -

        var submissionDateData = DateTime.Now.ToShortDateString();
        var submissionDate = DateTime.Parse(submissionDateData, CultureInfo.CreateSpecificCulture("en-GB"));

第一行给出了02/11/2015

第二行提供11/02/2015 12:00:00 AM

你是否必须对此进行字符串拆分或有办法摆脱时间?