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

Vis*_*abu 2 c# string format datetime timespan

如何将字符串格式化"1900-01-01 08:00:00.000"为just HH:MM30为其添加分钟.我做了以下事情;

 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);
Run Code Online (Sandbox Code Playgroud)

Son*_*nül 9

这不是一个TimeSpan,它是一个DateTime.A TimeSpan代表一段时间,但DateTime保持即时时间与日期和时间.

这就是为什么你需要将其解析到DateTime一个特定的使用格式DateTime.ParseExact的方法.之后,您可以30使用AddMinutes方法添加分钟.

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
Run Code Online (Sandbox Code Playgroud)

我希望结果是HH:mm

如果你想把它作为一个string,你可以使用DateTime.ToString像这样的方法;

string result = dt.ToString("HH:mm", CultureInfo.InvariantCulture); // 08:30
Run Code Online (Sandbox Code Playgroud)

如果你想获得这个作为TimeSpan,你可以使用TimeOfDay属性等;

TimeSpan ts = dt.TimeOfDay; // {08:30:00}
Run Code Online (Sandbox Code Playgroud)