将字符串转换为24小时日期时间格式



我有以下序列的字符串数据:

"4:32","1:08">

我想将其转换为24小时

其中"4:32"变为16:32

将其解析为TimeSpan,然后添加12小时:

var offset = TimeSpan.FromHours(12);
var time = TimeSpan.Parse("4:32").Add(offset);

将输入字符串解析为TimeSpan,添加12小时,然后使用所需的字符串格式格式化TimeSpan

string input = "4:32";
string output = TimeSpan.Parse(input).Add(TimeSpan.FromHours(12)).ToString("hh\:mm");
// output: "16:32"

根据您的注释,一旦您知道小时是否为AM/PM,您就可以用它的后缀解析值,然后使用HH自定义格式说明符:

DateTime d = DateTime.Parse("4:32 PM");
Console.WriteLine(d.ToString("HH:mm"));

将其转换为24小时格式。

https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#HH_Specifier

在您的问题建议的简单情况下,如果您事先知道字符串的格式为h:mm的12小时,并且它指的是PM,而不是AM,那么您可以拆分字符串,解析小时,添加12,然后重新组装。

var inputString = "4:32";
var splits = inputString.Split(':');
var hourString = splits[0];
var minuteString = splits[1];
var hour = int.Parse(hourString);
hour = hour + 12;
var outputString = $"{hour}:{minuteString}";

如果您正在处理日期或时间方面更复杂的事情,您可能希望使用DateTime或类似的类。

最新更新