使用 Servicestack CsvSerializer 时无法正确映射时间跨度类型

Timespan type cannot be mapped correctly when using Servicestack CsvSerializer

我正在尝试通过 Servicestack 的 SerializeToCsv 方法将对象列表转换为逗号分隔的字符串。但是,我意识到时间跨度无法正确转换。例如,我的时间跨度值为 19:00:00,但它转换为 PT19H。你可以看到下面的代码。我可以通过添加字符串 属性 将时间跨度转换为字符串,并在运行时在对象中将时间跨度更改为字符串,但是我认为在 Servicestack 中会有更好的方法并且在互联网上找不到任何东西。提前致谢!

 public string Convert()
  {
        var data =  _table.Get();
        CsvSerializer.UseEncoding = PclExport.Instance.GetUTF8Encoding(true);
        var csvStr = CsvSerializer.SerializeToCsv(data);

        return csvStr;
  }

这是 TimeSpan 的默认序列化,它使用 XSD duration format,例如19 小时 = PT19H,即 19 小时的周期。

您可以更改序列化格式:

JsConfig.TimeSpanHandler = TimeSpanHandler.StandardFormat;