我在代码中使用了很多 DateTime。我想将这些日期时间更改为我的特定日期并保留
时间。
1. "2012/02/02 06:00:00" => "2015/12/12 : 06:00:00"
2. "2013/02/02 12:00:00" => "2015/12/12 : 12:00:00"
我用这种风格来改变,但这似乎不是好方法,我想问有什么方法可以完成这个任务。
DateTime newDateTime = new DateTime(2015,12,12,oldDateTime.Hour,oldDateTime.Minute,0);
保留秒、毫秒和较小部分时间的更好方法是:
DateTime newDateTime = new DateTime(2015,12,12) + oldDateTime.TimeOfDay;
或者,您可以创建一个扩展方法,将新日期应用到现有日期时间,同时不相信新日期上没有 TimeOfDay:-
public static DateTime WithDate (this DateTime datetime, DateTime newDate)
{
return newDate.Date + datetime.TimeOfDay;
}
IMHO DateTime
是 .NET 最薄弱的部分之一。例如,一个TimeSpan
与 a 不一样TimeOfDay
它也不能代表“时间周期”(以月为单位)——这是三个独立的概念,将它们混合在一起是一个糟糕的选择。搬到DateTimeOffset
通常首选或优秀的 Noda 时间库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)