如何将字符串“1900-01-01 08:00:00.000”格式化为HH:MM并添加30分钟?

时间:2015-12-24 09:30:13

标签: 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.Add(addtime);

1 个答案:

答案 0 :(得分:9)

这不是TimeSpan,而是DateTimeTimeSpan代表一段时间,但DateTime会保留即时时间与日期和时间。

这就是为什么您需要使用DateTime.ParseExact method特定格式将其解析为DateTime。之后,您可以使用AddMinutes method添加30分钟。

string s = "1900-01-01 08:00:00.000";
DateTime dt = DateTime.ParseExact(s, "yyyy-MM-dd HH:mm:ss.fff", 
                                  CultureInfo.InvariantCulture)
dt = dt.AddMinutes(30); // 01/01/1900 08:30:00
  

我希望结果为HH:mm

如果您希望将其作为string,则可以使用DateTime.ToString方法;

string result = dt.ToString("HH:mm", CultureInfo.InvariantCulture); // 08:30

如果您希望将其作为TimeSpan,则可以使用TimeOfDay property之类的;

TimeSpan ts = dt.TimeOfDay; // {08:30:00}