格式化DateTime没有字符串转换

时间:2014-11-06 15:14:29

标签: c# datetime datetime-format

我正在修改一些遗留代码,而且还有......

DateTime dateTime = DateTime.Now;

DateTime from = DateTime.Parse(dateTime.ToString("dd/MM/yyyy 00:00:00"));
DateTime to = DateTime.Parse(dateTime.AddDays(8).ToString("dd/MM/yyyy 23:59:59"));

然后在Linq / Lambda比较中使用from和to变量,因此必须是DateTime。

我似乎无法找到一种方法来格式化DateTime变量而不将其转换为字符串,然后再返回到DateTime,这至少可以说是愚蠢的。

当然必须有一种方法来格式化DateTime而不将其转换为字符串,然后再转换回DateTime?

2 个答案:

答案 0 :(得分:5)

您无需将DateTime转换为字符串,然后将其解析回DateTime,而是使用DateTime.Date,如:

DateTime from = dateTime.Date;
DateTime to = dateTime.Date.AddDays(9).AddTicks(-1); //or .AddSeconds(-1) if you want 
                                                     // accuracy to a second. 

答案 1 :(得分:3)

DateTime没有任何隐式格式。它的字符串表示有。并且Today property将时间部分设置为午夜。

DateTime from = DateTime.Today;
DateTime to   = DateTime.Today.AddDays(9).AddSeconds(-1);