将当前Date.Now添加到TimeSpan?

时间:2013-07-03 10:14:12

标签: c# datetime

这与此链接类似:"Add the current time to a DateTime?"但我的情况完全不同。

我想知道如何将您的时间跨度(例如:上午10:00)添加到您的Date.Now(例如2013年7月3日)?我已经尝试了DateTime.Now.Add(timeSpan),但它不起作用。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

DateTime是不可变的,因此您的现有变量不会更改。

var myDateTime = DateTime.Now.Add(timeSpan);

答案 1 :(得分:1)

您可以使用+运算符:

TimeSpan ts = TimeSpan.FromHours(10);
DateTime result = DateTime.Now + ts;

但是,DateTime.Add也应该有用。我假设你的“TimeSpan”是一个字符串。

由于您的时间跨度包含AM / PM指示符,您可以将其解析为DateTime,然后将TimeOfDay - TimeSpan添加到DateTime.Now

DateTime time = DateTime.ParseExact("10:00AM", "hh:mmtt", CultureInfo.InvariantCulture);
DateTime result = DateTime.Now + time.TimeOfDay;

Demo

修改:如果您想将TimeSpan添加到午夜,请使用DateTime.Today代替DateTime.Now