Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#DateTime,修剪而不转换为字符串_C#_.net_Sql Server - Fatal编程技术网

c#DateTime,修剪而不转换为字符串

c#DateTime,修剪而不转换为字符串,c#,.net,sql-server,C#,.net,Sql Server,如何“修剪”c#中的DateTime属性的值 例如,当我得到一个日期时,它的格式是“10/1/2010 00:00:00” 如何“修剪”'Time'00:00:00而不将其转换为字符串 因为我使用了类型为DateTime的属性来处理这个问题,所以我不需要转换为字符串 非常感谢您的帮助。如果您询问DateTime对象是否可以是时间无关的,答案是否。您可以创建一个用户定义的Date类,该类仅返回DateTime对象的日期部分。如果您只是想截断时间,请参见下文 var dt = DateTime.No

如何“修剪”c#中的
DateTime
属性的值

例如,当我得到一个日期时,它的格式是“10/1/2010 00:00:00”

如何“修剪”'Time'00:00:00而不将其转换为字符串

因为我使用了类型为
DateTime
的属性来处理这个问题,所以我不需要转换为字符串


非常感谢您的帮助。

如果您询问DateTime对象是否可以是时间无关的,答案是否。您可以创建一个用户定义的Date类,该类仅返回DateTime对象的日期部分。如果您只是想截断时间,请参见下文

var dt = DateTime.Now;    // 10/1/2010 10:44:24 AM
var dateOnly = dt.Date;   // 10/1/2010 12:00:00 AM
DateTime now = DateTime.Now;
DateTime today = now.Date;


你不能从DateTime对象中获取它,然后.ToString()将其删除吗


您可能希望从结尾处删除毫秒…

这无法完成。DateTime始终有一个时间,即使时间是00:00:00


您只能在转换为字符串时删除它。

如其他人所述

var now = DateTime.Now;
var today = now.Date;
是首选的方式。但是,由于我喜欢
timtowtdi
哲理:

var now = DateTime.Now;
var today = now.Add(-now.TimeOfDay);

您可以将日期修剪为小时分钟,天

 DateTime t = DateTime.Now;
 DateTime t2 = t - new TimeSpan(t.Ticks % TimeSpan.TicksPerDay);

您还可以使用TicksPerHour、TicksPerMinute和TicksPerSecond

和/或dt.ToSortDateString();当需要显示时,这并不能回答问题。当然,这个问题没有答案,因为DateTime总是有时间的。@Kevin Gale:我不同意。我想这已经达到了OP的目的。也许他会在这篇文章中澄清问题或评论。@codekaizen:我不同意。他特别谈到消除零时间。当然,他显然不确定日期时间是如何工作的,所以一切皆有可能。@凯文·盖尔:没错,任何解释都有可能,他显然是
DateTime
类型的新手。因此,我认为我的回答是有用的。否决票似乎很严厉。你的问题毫无意义。尽管日期可以是00:00:00,但您的日期始终有时间。类名为日期+时间。日期时间。没有“零时间”,也许你没有足够明确地解释这个问题。正如其他人所说,根据定义,DateTime类将始终具有时间部分。如果你的程序依赖于没有时间,那么设计可能有问题。。或者,您只是没有把事情弄清楚……我认为您混淆了DateTime类型的结构和它的ToString()表示(这是调试器显示的)。无法“修剪”“00:00:00”,因为只有将日期时间转换为字符串后,它才会存在。这就是为什么会有多个toxxString()方法。理论上,这会让您陷入麻烦,因为您的两个语句之间存在时间差:)这是我首先分配变量的方式。由于DateTime是一个结构,所以now是当前日期的只读副本,
now.Add(-now.TimeOfDay)
将始终将时间部分重置为
00:00:00
var now = DateTime.Now;
var today = now.Add(-now.TimeOfDay);
 DateTime t = DateTime.Now;
 DateTime t2 = t - new TimeSpan(t.Ticks % TimeSpan.TicksPerDay);