我正在修改一些遗留代码,而且还有......
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?
答案 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);