如何将DateTime的时间设置为零?

6
假设我有以下的 DateTime 变量。
DateTime CurDate = '26/3/2014 12:00:00 AM';

我想知道如何设置CurDate的值为26/3/2014 00:00:00 AM

请注意,我仍然需要时间,但是需要所有数字都是零。

**P/S:之所以要全为零,是因为在SQL Server中存储的日期时间值为26/3/2014 00:00:00.000。为了匹配数据库数据,我需要将CurDate转换为所有数字都是零的形式。


2
这实际上是一个格式问题。在24小时制中,12:00:00 AM等同于00:00:00。不存在00:00:00 AM这样的东西。 - T.C.
1
这个问题似乎不适合讨论,因为它很可能是一个XY问题。与其询问关于你提出的解决方案的问题,不如考虑询问原始问题。 - Matt Johnson-Pint
8个回答

8
你可以简单地使用。
CurDate.Date and that will give you '26/3/2012 00:00:00'

5

1
你可以尝试这个:

你可以尝试这个:

// Parse the string you have, to create a datetime.
DateTime CurDate = DateTime.ParseExact('26/3/2014 12:00:00 AM', 
                                       "dd-MM-yyyy HH:mm:ss", 
                                        CultureInfo.InvariantCulture);

// Create the datetime you want based on the CurDate
DateTime result = new DateTime(CurDate.Year, CurDate.Month, CurDate.Day, 0, 0, 0);

关于ParseExact的更多信息,请查看此处


1

SQL Server.NET中,日期没有任何的呈现形式,它们只是一个数字值。不用担心,SQL Server.NET都很聪明,可以在不混淆的情况下传递参数。只需传递正确数据类型的参数即可。


1
使用24小时格式。
DateTime CurDate = DateTime.Parse("3/26/2014 12:00:00 AM");
Console.WriteLine("12 Hour Format: " + CurDate.ToString("dd-MM-yyyy hh:mm:ss"));
Console.WriteLine("24 Hour Format: " + CurDate.ToString("dd-MM-yyyy HH:mm:ss")); 

0
        this.dtGelisSaati = DateTime.Now;

设置货币时间值
        this.dtGelisSaati = DateTime.Today;

这个没问题。零时间值已设置。


0

我知道现在有点晚了,但我认为这是未来参考的正确答案:

Console.WriteLine("Current Date with 0s on time part: " + DateTime.Now.ToString("yyyy-MM-dd 00:00:00.000"));

0

将 .Date 放入并获取日期部分,而无需时间部分。

我使用 Linq 如下:

var list = Results.Where(x => x.ExpDate.Date >= From.Date && x.ExpDate.Date <= To.Date).ToList();


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接