格式化从反射中提取的时间跨度,使其仅显示小时和分钟

本文关键字:显示 小时 分钟 反射 提取 时间跨度 格式化 | 更新日期: 2023-09-27 18:26:42

我有一个函数,我将向它传递一个匿名对象,然后我必须返回一个时间跨度值,该值将以hh:mm格式显示。请查看下面的代码片段。

public string GetTime(Object obj, string propName)
{
   TimeSpan? time = obj.Gettype().GetProperty(propName).GetValue(obj, null);
   return time.ToString(@"hh':mm");
}

我在时间变量中得到了正确的值,当我试图转换为字符串时,它说没有ToString函数需要1个参数

我甚至试图使用TimeSpan.parse进行转换,然后它允许我在这里进行转换,但它给了我错误的值作为输出

这是我的TimeSpan解析:

return TimeSpan.Parse(time.ToString()).ToString(@"hh':mm");

一些我想如何得到hh:mm作为字符串,以完全精确的值。所以请大家帮忙。。。。。。。。。

格式化从反射中提取的时间跨度,使其仅显示小时和分钟

尝试:

public string GetTime(Object obj, string propName)
{
   TimeSpan? time = obj.GetType().GetProperty(propName).GetValue(obj, null);
   // The difference is here... If time has a value, then take it
   // and format it, otherwise return an empty string.
   return time.HasValue ? time.Value.ToString(@"hh':mm") : string.Empty;
}

虽然TimeSpan.ToString()具有所需的过载,但TimeSpan?没有。