我的项目是.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 */ ;
答案 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
目前还不清楚文字在该句中的含义,但如果TimeSpan
为13:45:39
,则可以清楚地将此值添加到dt1
与DateTime.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.Add
和DateTime.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);