格式化从反射中提取的时间跨度,使其仅显示小时和分钟
本文关键字:显示 小时 分钟 反射 提取 时间跨度 格式化 | 更新日期: 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?
没有。