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

问题描述 投票:0回答:3

我的项目是

.net 3.5
。我有一个 DateTime 变量
dt1
仅包含日期部分。

现在我想将 DateTime 文字

# 13:45:39 #
的时间部分附加到
dt1
并分配给新的 DateTime 变量
dt2

有人知道怎么办吗

DateTime dt1 = #2016/12/31# ;
DateTime dt2 = /*code to append # 13:45:39 # to dt1 */  ;
c# .net datetime append literals
3个回答
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 和 分配给新的日期时间变量 dt2

不清楚这个literal在该句子中的含义,但如果您有一个

TimeSpan
作为
13:45:39
,您可以使用
dt1
方法清楚地将此值添加到您的
DateTime.Add(TimeSpan)

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

如果这个

# 13:45:39 #
是一个字符串,你可以先用
TimeSpan
方法将其解析为
ParseExact
,然后再次使用这个
Add
方法,就像;

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

0
投票

你可以这样做:

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

0
投票

假设

DateTime literal # 13:45:39 #
表示您有一个用于日期的 DatetIme 和一个用于时间的 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);
© www.soinside.com 2019 - 2024. All rights reserved.