C# 如何设置字符串的格式;1900-01-01 08:00:00.000“;只需要HH:MM,再加上30分钟?
如何将字符串C# 如何设置字符串的格式;1900-01-01 08:00:00.000“;只需要HH:MM,再加上30分钟?,c#,string,datetime,format,timespan,C#,String,Datetime,Format,Timespan,如何将字符串“1900-01-01 08:00:00.000”格式化为HH:MM,并向其添加30分钟。我做了以下几件事 p[0]="1900-01-01 08:00:00.000"; TimeSpan _time = TimeSpan.ParseExact(p[0].ToString(), "HH:mm", CultureInfo.InvariantCulture); TimeSpan addtime = TimeSpan.FromMinutes(30); _time = _time.A
“1900-01-01 08:00:00.000”
格式化为HH:MM
,并向其添加30
分钟。我做了以下几件事
p[0]="1900-01-01 08:00:00.000";
TimeSpan _time = TimeSpan.ParseExact(p[0].ToString(), "HH:mm", CultureInfo.InvariantCulture);
TimeSpan addtime = TimeSpan.FromMinutes(30);
_time = _time.Add(addtime);
这不是
TimeSpan
,而是DateTime
。TimeSpan
表示时间长度,但DateTime
将即时时间与日期和时间保持一致
这就是为什么需要使用特定格式将其解析为DateTime
。之后,您可以使用添加30
分钟
我希望结果是HH:mm
如果您想将其作为字符串
,可以使用DateTime.ToString
方法,如
string result = dt.ToString("HH:mm", CultureInfo.InvariantCulture); // 08:30
如果您想将其作为TimeSpan
,可以使用like
TimeSpan ts=dt.AddMinutes(30).TimeOfDay代码>@Soner Gonul存在编译错误,您正在为日期指定布尔值variable@VishnuBabu您的意思是作为字符串或时间跨度的08:30
?您可以为此设置格式。更新了我的答案。@wintersolider是的,这是一种类型。改为TryParseExact
改为ParseExact
@musefan我无法确定OP想要08:30
作为字符串还是时间跨度,所以我将两者都添加了。谢谢
string result = dt.ToString("HH:mm", CultureInfo.InvariantCulture); // 08:30
TimeSpan ts = dt.TimeOfDay; // {08:30:00}