我具有按以下顺序排列的字符串数据:
“ 4:32”,“ 1:08”
我想将其转换为24小时制
其中“ 4:32”变为16:32
答案 0 :(得分:4)
将其解析为TimeSpan
,然后添加12小时:
var offset = TimeSpan.FromHours(12);
var time = TimeSpan.Parse("4:32").Add(offset);
答案 1 :(得分:1)
将输入字符串解析为TimeSpan
,添加12小时,然后使用所需的字符串格式设置TimeSpan
:
string input = "4:32";
string output = TimeSpan.Parse(input).Add(TimeSpan.FromHours(12)).ToString("hh\\:mm");
// output: "16:32"
答案 2 :(得分:1)
根据您的评论,一旦您知道小时是上午/下午,就可以解析带有后缀的值,然后使用 HH 自定义格式说明符:
DateTime d = DateTime.Parse("4:32 PM");
Console.WriteLine(d.ToString("HH:mm"));
将其转换为24h格式。
答案 3 :(得分:-1)
在一个简单的情况下,您的问题提示,您事先知道该字符串为12小时,格式为h:mm
,它表示的是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
或类似的类。