0

我有一个函数,我将向其传递一个匿名对象,然后我必须返回一个时间跨度值,该值将以 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 作为字符串获得完全精确的值。所以请任何解决方法......

4

1 回答 1

1

尝试:

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?但没有。

于 2013-08-07T15:04:59.310 回答