2011-11-01 70 views

回答

27

你想DateTime.Today.AddHours(16)

DateTime.Today将在午夜回到今天的日期。
您还可以使用Date属性从任意DateTime值中删除时间。

+0

那么在这个运行的时候会发生什么?似乎它会将时间设定为凌晨4点的第二天。对我来说不太合适 – Cole9350

+2

@ Cole9350:不;它将在下午4点返回。 – SLaks

3
var anotherTime = DateTime.Today.AddHours(16.0); 
11

我想这应该做你需要什么...

DateTime now = DateTime.Now; 
DateTime dt = new DateTime(now.Year, now.Month, now.Day, 16, 0, 0); 
+2

这是凌晨4点,不是PM。 –

+0

@AnthonyPegram:欢呼,我讨厌它发生时(大脑/手指不同步) – musefan

2

看看所有overloaded constructors的日期时间。

DateTime myDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 16, 0, 0); 

编辑:校正。谢谢乔恩。 :)

+1

重载,未覆盖。构造函数不能被覆盖,因为它们不是多态的。 –

+1

如果这样的运行如此接近午夜,那么第一个“今日”呼叫与其后的呼叫不同? – musefan

+0

@musefan:我想任何事情都可能发生。但是OP在午夜说*今天*,所以如果这段代码在11:59 pm运行,那么它仍然会在今天下午4点存储今天的日期。您可以先将DateTime.Today存储在一个单独的变量中,然后引用它。或者你可以使用我更喜欢的SLaks例子。 –

相关问题