C# 在C中创建日期时间#

C# 在C中创建日期时间#,c#,datetime,C#,Datetime,如何动态创建一个DateTime对象,该对象始终具有当前月/日/年的内容,但始终具有16:00时间组件?您可以执行以下操作: var today = DateTime.Today.AddHours(16); 这应该是今天下午16:00(4点)怎么样: DateTime today = DateTime.Today; DateTime Today16 = new DateTime(today.Year, today.Month, today.Day,

如何动态创建一个
DateTime
对象,该对象始终具有当前月/日/年的内容,但始终具有16:00时间组件?

您可以执行以下操作:

 var today = DateTime.Today.AddHours(16);
这应该是今天下午16:00(4点)

怎么样:

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

应使用今天的年、月、日,并将时间设置为16:00小时。

小心;您要确保您慎重决定是在当地时区下午4点还是格林威治标准时间16:00。25个时区中有24个与您的时区不同;)虽然两个答案我都正确,但我更喜欢@Tejs,因为它只调用DateTime.Today一次。这样,它就不必在今天生成3次。(今天决定改为DateTime.Now.Date)@詹姆斯·迈克尔·黑尔:更新了我的回答——我非常怀疑这会有什么显著的区别——但是嘿……@marc_s:我想这和许多其他绩效辩论类似。在这里或那里进行呼叫,你看不出有什么区别,但如果重复执行,可能会增加开销,尽管这很小。正如我所说,两者都是正确的,我只是喜欢今天的优雅。经过进一步分析,AddHours只是一个更高效的发型。每种方法的一百万次迭代产生了1570毫秒的AddHours()和1883毫秒的新DateTime()方法。所以两者都非常接近,几乎可以忽略不计。