将字符串时间转换为正常时间值,将小时替换为正确的小时

本文关键字:小时 时间 替换 字符串 转换 常时间 | 更新日期: 2023-09-27 17:58:08

我有以下字符串值示例:

24:05 , 25:08 , 26:59

我需要一个函数或其他东西来获得正确的时间值(hh:mm),比如:

00:05 , 01:08 , 02:59

C#中有这样的方法吗?

请帮帮我,我会疯掉的!!

Thx!干杯Alessandro

将字符串时间转换为正常时间值,将小时替换为正确的小时

使用regex,您可以这样做:

var match = Regex.Match("25:05", @"^('d{2,}):('d{2})$");
var hour = int.Parse(match.Groups[1].Value) % 24;
var min = int.Parse(match.Groups[2].Value);
// hour will be 1 and min 5

如果你喜欢避免正则表达式,那么一个简单的input.IndexOf()input.SubString()就可以了

更新:如果你想要一个方法,那么看看这个:

static TimeSpan ParseHHMM(string input)
{
    var match = Regex.Match(input, @"^('d{2,}):('d{2})$");
    var hour = int.Parse(match.Groups[1].Value) % 24;
    var min = int.Parse(match.Groups[2].Value);
    return new TimeSpan(hour, min, 0);
}
// Write to console
Console.WriteLine(ParseHHMM("25:05").ToString(@"hh':mm"));

更新:我已将小时部分的'd{2}更改为'd{2,}。这意味着它现在可以接受类似125:05的输入。