格式化DateTime而不进行字符串转换

本文关键字:字符串 转换 DateTime 格式化 | 更新日期: 2023-09-27 18:29:20

我正在修改一些遗留代码,下面是。。。

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?

格式化DateTime而不进行字符串转换

不需要将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. 

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

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