使用.Net Framework 2.0的VB.Net格式时间跨度

使用.Net Framework 2.0的VB.Net格式时间跨度,vb.net,string,frameworks,format,timespan,Vb.net,String,Frameworks,Format,Timespan,我编写了一种在VB.NET Framework 4.0中显示时间跨度的方法,如下所示: Me.lbl_StatsOverTimeSince.Text = TimeSpan.FromSeconds(My.Settings.stats_OverTimeSince).ToString("d\d\ h\h\ m\m\ s\s") 现在我的问题是,我尝试将此应用程序转换为2.0,但这是唯一不起作用的东西 我看过这条线: 我试着用建议的想法进行调整: Dim ts As TimeSpan = TimeSp

我编写了一种在VB.NET Framework 4.0中显示时间跨度的方法,如下所示:

Me.lbl_StatsOverTimeSince.Text = TimeSpan.FromSeconds(My.Settings.stats_OverTimeSince).ToString("d\d\ h\h\ m\m\ s\s")
现在我的问题是,我尝试将此应用程序转换为2.0,但这是唯一不起作用的东西

我看过这条线:

我试着用建议的想法进行调整:

Dim ts As TimeSpan = TimeSpan.FromSeconds(My.Settings.stats_OverTimeSince)
Me.lbl_StatsOverTimeSince.Text = String.Format("{0:d\\d\\ h\\h\\ m\\m\ s\\s}", ts)
我认为问题在于我使用的是TimeSpan.FromSeconds而不是New TimeSpan(),因为它显示999.23:59:59,无论FromSeconds值是什么

有什么解决办法吗


提前感谢。

这与从秒开始使用
无关。
TimeSpan
是一个
TimeSpan
,无论它是如何创建的

TimeSpan.ToString
的重载只在.NET4.0中添加。您对
String.Format
的使用仍然依赖于
TimeSpan.ToString
内部。您必须自己设置格式:

Dim time = TimeSpan.FromSeconds(My.Settings.stats_OverTimeSince)

Me.lbl_StatsOverTimeSince.Text = String.Format("{0}d {1}h {2}m {3}s", time.Days, time.Hours, time.Minutes, time.Seconds)

实际问题是.NET2.0不支持timespan格式。很好!谢谢你的快速回答!我需要它来发布新版本的应用程序^_^