对于符合SQL Server的C#,仅解析时间(分钟:秒.Ms)

Mde*_*dev 2 c# sql-server timespan

我有一个有minutes.seconds.milliseconds的字符串.我需要将其转换为符合SQL Server的类型值TIME.

这是我到目前为止所尝试的,但我仍然得到格式异常

var a = "1.39.26";
        var ab = a.Split('.');
        var minutes = ab[0];
        var seconds = ab[1];
        var ms = ab[2];
        string time =  minutes + ":" + seconds + "." + ms;
        var one = TimeSpan.ParseExact(time, "mm:ss.FF",CultureInfo.InvariantCulture);
        var two = DateTime.ParseExact(time, "mm:ss.FF",
                                 CultureInfo.InvariantCulture
                                 );
Run Code Online (Sandbox Code Playgroud)

也试过了

string time = DateTime.Now.Date.ToString() + minutes + ":" + seconds + "." + ms;
var one = TimeSpan.ParseExact(time, "dd-MM-yyyy mm:ss.FF", CultureInfo.InvariantCulture);
var two = DateTime.ParseExact(time, "dd-MM-yyyy mm:ss.FF", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

Son*_*nül 5

我们无法知道您的DateTime.Now.Date.ToString()返回信息,因为它取决于您的CurrentCulture设置,但您可以直接将此字符串解析TimeSpan为;

var a = "1.39.26";
TimeSpan ts = TimeSpan.ParseExact(a, "m\\.ss\\.ff", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

DateTime.Today如果您愿意,可以在此之后添加此值.

DateTime dt = DateTime.Today.Add(ts);
Run Code Online (Sandbox Code Playgroud)

但是由于在CLR方面TIME映射TimeSpan,我怀疑你想要这个.

进一步阅读;