如何将DateTime文字的时间部分附加到DateTime变量?

时间:2016-04-27 07:58:51

标签: c# .net datetime append literals

我的项目是.net 3.5。 我有一个仅包含Date部分的DateTime变量dt1,现在我想将DateTime文字# 13:45:39 #的时间部分追加到dt1并分配给新的DateTime变量dt2。有谁知道怎么办?

DateTime dt1 = #2016/12/31# ;
DateTime dt2 = /*code to append # 13:45:39 # to dt1 */  ;

3 个答案:

答案 0 :(得分:2)

  

我的项目是.net 3.5。我有一个包含的DateTime变量dt1   只有日期部分

DateTime是.NET Framework中的struct始终具有日期和时间部分。通过这句话,我假设你的时间部分是00:00:00喜欢;

DateTime dt1 = new DateTime(2016, 12, 31);
  

我想将DateTime文字#13:45:39#的时间部分附加到dt1和   分配给新的DateTime变量dt2

目前还不清楚文字在该句中的含义,但如果TimeSpan13:45:39,则可以清楚地将此值添加到dt1DateTime.Add(TimeSpan)方法一样;

TimeSpan ts = new TimeSpan(13, 45, 39);
dt1 = dt1.Add(ts);

如果此# 13:45:39 #是字符串,您可以先使用ParseExact方法将其解析为TimeSpan,然后再次使用此Add方法;

TimeSpan ts = TimeSpan.ParseExact("# 13:45:39 #", "'# 'hh\\:mm\\:ss' #'", 
                                  CultureInfo.InvariantCulture);
dt1 = dt1.Add(ts);

答案 1 :(得分:0)

您可以这样做:

DateTime dt2 = new DateTime(dt1.Year, dt1.Month, dt1.Day, 13, 45, 39);

答案 2 :(得分:0)

假设DateTime literal # 13:45:39 #表示您有一个DatetIme日期和一个时间,您可以使用DateTIme.AddDateTime.TimeOfDay来获取时间跨度:

DateTime dtDate = new DateTime(2016, 12, 31);
DateTime dtTime = new DateTime(1, 1, 1, 13, 45, 39);
DateTime result = dtDate.Date.Add(dtTime.TimeOfDay);

如果提到的时间字面值实际上是一个字符串,请使用TimeSpan.Parse / TryParse

string timeString = "# 13:45:39 #";
TimeSpan time = TimeSpan.Parse(timeString.Trim(' ', '#'));
result = dtDate.Date.Add(time);