如何在c#中“修剪”DateTime
属性的值?
例如,当我收到日期时,格式为“10/1/2010 00:00:00”。
如何“修剪”'时间'00:00:00而不将其转换为字符串?
由于我使用类型DateTime
的属性来操作它,我不需要转换为String。
感谢任何帮助。
答案 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);