c# - 如何将字符串 "1900-01-01 08:00:00.000"格式化为 HH :MM and add 30 minutes to it?

标签 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);

最佳答案

这不是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

i want the result to be in 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}

关于c# - 如何将字符串 "1900-01-01 08:00:00.000"格式化为 HH :MM and add 30 minutes to it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450456/

相关文章:

string - 如何将网络客户端的 IP 转换为 Golang 中的字符串?

javascript - 将数据推送到没有索引的数组

swift : Convert 12hr time to 24hrs when device is in 12hrs formate

c# - 如何在控制台应用程序中以编程方式查找所有已安装的 Internet Explorer 加载项

c# - 从源文件编译程序时,如何将目标框架设置为v2.0或v3.5而不是4.0?

c# - 如何在不暂停或中断程序的情况下在 C# 中多线程读取行?

python - 如何要求在 Python 验证期间将时间戳补零?

c# - 手动显示字段验证器 (ASP.NET/C#)

c++ - 提交时的 SIGSEGV

java - 检查是否因夏令时而增加时间