如何在 C# 中解析 Kusto 时间跨度字符串?

How can I parse Kusto timespan strings in C#?

例如,我试过 TimeSpan.Parse("2d"),但那行不通。

Kusto timespan 的格式似乎不受任何 TimeSpan.Parse() 风格的支持。

TimeSpan.Parse 在 c# 中无法识别 Kusto 时间跨度字符串,如 2d、2h 等

我们不知道您解析它的目的,但您可以使用如下代码:

        string mytime = "2d";

        if (mytime.EndsWith("d"))
        {
            mytime = mytime.Remove(mytime.IndexOf('d'));
            var dt = DateTime.Now.AddDays(Convert.ToDouble(mytime));
            Console.WriteLine(dt.ToString());
        }

适用于 .NET 的 Kusto 数据客户端 SDK(在 Microsoft.Azure.Kusto.Data nuget 包中)有一个理解此格式的 CslTimeSpanLiteral class。它包含几个用于将字符串解析为 .NET 的 TimeSpan 结构的静态方法。

例如:

using Kusto.Data.Common;

...

TimeSpan? ts = CslTimeSpanLiteral.Parse("2d");

除了Parse,还有ParseNoNullTryParseTryParseNoNull