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

时间:2010-10-01 17:40:44

标签: c# .net sql-server

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

例如,当我收到日期时,格式为“10/1/2010 00:00:00”。

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

由于我使用类型DateTime的属性来操作它,我不需要转换为String。

感谢任何帮助。

6 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:2)

如果你问的是DateTime对象是否时间无知,答案是否定的。您可以创建一个用户定义的Date类,它只返回DateTime对象的Date部分。如果您只是想要截断时间,请参阅下文。

DateTime now = DateTime.Now;
DateTime today = now.Date;

DateTime now = DateTime.Now;
DateTime today = new DateTime(now.Year, now.Month, now.Day);

答案 2 :(得分:1)

您可以将日期修剪为小时,日......

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

您还可以使用TicksPerHour,TicksPerMinute和TicksPerSecond。

答案 3 :(得分:0)

你不能从DateTime对象中获取它,然后是.ToString()吗?

DateTime current = DateTime.Now;
string myTime = current.TimeOfDay.Tostring()

你可能想要从结尾剥去毫秒......

答案 4 :(得分:0)

这不可能。即使时间是00:00:00

,DateTime也总是有时间

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

答案 5 :(得分:0)

正如其他人所说

var now = DateTime.Now;
var today = now.Date;

是首选方式。但是,因为我喜欢timtowtdi哲学:

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