我有以下序列的字符串数据:
"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
或类似的类。