Vb.net 将timespan的格式设置为小时数大于24,而不是使用天部分

Vb.net 将timespan的格式设置为小时数大于24,而不是使用天部分,vb.net,Vb.net,在VisualBasic.NET中,我试图将以秒为单位的时间转换为可以超过24小时的hh:mm:ss格式 例如,当尝试使用以下代码将86400秒转换为时间跨度时: dim sec = 86400 dim res = TimeSpan.FromSeconds(sec).ToString 输出为“1.00:00:00” 而me所需的输出是“24:00:00” 如何做到这一点?您只需进行以下计算: Dim secs = 86400 Dim ts = TimeSpan.FromSeconds(secs

在VisualBasic.NET中,我试图将以秒为单位的时间转换为可以超过24小时的hh:mm:ss格式

例如,当尝试使用以下代码将86400秒转换为时间跨度时:

dim sec = 86400
dim res = TimeSpan.FromSeconds(sec).ToString
输出为“1.00:00:00”

而me所需的输出是“24:00:00”


如何做到这一点?

您只需进行以下计算:

Dim secs = 86400
Dim ts = TimeSpan.FromSeconds(secs)
Dim res = String.Format("{0}:{1:00}:{2:00}", (ts.Days * 24 + ts.Hours), ts.Minutes, ts.Seconds)

Console.WriteLine(res)
产出:

24:00:00

如果您希望小时至少有两位数字,请使用
“{0:00}:{1:00}:{2:00}”


(您可以使用
String.Format(“{0}:{1:00}:{2:00}”)、Math.Floor(ts.TotalHours)、ts.Minutes、ts.Seconds)
如果您认为它看起来更好。)

您只需要进行以下计算:

Dim secs = 86400
Dim ts = TimeSpan.FromSeconds(secs)
Dim res = String.Format("{0}:{1:00}:{2:00}", (ts.Days * 24 + ts.Hours), ts.Minutes, ts.Seconds)

Console.WriteLine(res)
产出:

24:00:00

如果您希望小时至少有两位数字,请使用
“{0:00}:{1:00}:{2:00}”


(你可以使用
String.Format(“{0}:{1:00}:{2:00}”)、Math.Floor(ts.TotalHours)、ts.Minutes、ts.Seconds)
,如果你认为它看起来更好的话。)

你所问的问题既不能作为答案也不能作为答案

您希望将总小时数作为一个向下舍入的整数,后跟分秒部分。自定义格式说明符仅适用于特定零件

您可以使用该属性以双精度形式检索小时数,并使用自定义说明符格式化字符串的其余部分

Dim ts=TimeSpan.FromDays(1)
String.Format("{0:00}:{1:mm\:ss}",Math.Floor(ts.TotalHours), ts)


您所要求的内容既不能作为或提供

您希望将总小时数作为一个向下舍入的整数,后跟分秒部分。自定义格式说明符仅适用于特定零件

您可以使用该属性以双精度形式检索小时数,并使用自定义说明符格式化字符串的其余部分

Dim ts=TimeSpan.FromDays(1)
String.Format("{0:00}:{1:mm\:ss}",Math.Floor(ts.TotalHours), ts)


你问的是格式问题,不是转换问题单独使用通用短时间跨度格式(“g”)。你想要什么就没有什么。通常,您需要使用,但总小时数BTW没有指定符,如果您想为1天创建时间跨度,
timespan。FromDays(1)
更简单为什么要这样做<代码>24:00通常指24小时/全天的结束时间time@PanagiotisKanavos-我不记得军队里有24:00,时钟从00:00:00-23:59:59.9999999运行。@dbasnett,特别是。还有其他名字
24:00
具有真正的含义,与Infinite 9s完全不同。航空公司的时间表实际上是24小时公布的,因为周一的下班时间与周二的开始时间不同。你要问的是格式问题,而不是转换问题单独使用通用短时间跨度格式(“g”)。你想要什么就没有什么。通常,您需要使用,但总小时数BTW没有指定符,如果您想为1天创建时间跨度,
timespan。FromDays(1)
更简单为什么要这样做<代码>24:00通常指24小时/全天的结束时间time@PanagiotisKanavos-我不记得军队里有24:00,时钟从00:00:00-23:59:59.9999999运行。@dbasnett,特别是。还有其他名字
24:00
具有真正的含义,与Infinite 9s完全不同。航班时刻表实际上是24小时发布的,因为周一的下班时间与周二的开始时间不同。感谢您的回答,它工作得很好,但是,例如,在61秒内,它返回“0:01:01”,而理想的输出是“00:01:01”。我怎样才能克服这一点?ThanksIt的解决方法是简单地修改如下:String.Format(“{0}:{1:00}:{2:00}”,(ts.Days*24+ts.Hours),ts.Minutes,ts.Seconds)@amirhosseinsarfi You's welcome:)我添加了如何在答案中使用至少两位数字来设置小时的格式。谢谢你的回答,但是,例如,在61秒内它会返回“0:01:01”而理想的输出是“00:01:01”。我怎样才能克服这一点?ThanksIt的解决方法是简单地修改如下:String.Format(“{0}:{1:00}:{2:00}”,(ts.Days*24+ts.Hours),ts.Minutes,ts.Seconds)@amirhosseinsarfi You're welcome:)我在答案中添加了如何用至少两位数字格式化小时。