gpt4 book ai didi

c# - 在 TimeSpan 上使用 String.Format 输出没有毫秒的完整秒数

转载 作者:IT王子 更新时间:2023-10-29 04:53:56 27 4
gpt4 key购买 nike

我想在字符串中显示两个日期之间耗时。

假设我有以下代码:

DateTime date1 = DateTime.Now();
System.Threading.Thread.Sleep(2500);
DateTime date2 = DateTime.Now();

TimeSpan elapsed = date2.substract(date1);
Console.WriteLine("> {0:hh:mm:ss}", elapsed);

我的期望:

> 00:00:03

我得到的:

> 00:00:02.5002500

有没有办法使用 String.Format 函数只返回整秒?
我还尝试删除小数位:

elapsed = elapsed.Substract(TimeSpan.FromMiliseconds((double)Timespan.Miliseconds);

但这也不起作用,因为 elapsed.Miliseconds 返回 500 作为整数。

最佳答案

改变

Console.WriteLine("> {0:hh:mm:ss}", elapsed);

Console.WriteLine("> {0:hh\\:mm\\:ss}", elapsed);

.Net 4 允许您在 Timespan 中使用自定义格式字符串。您可以在 MSDN Custom TimeSpan Format Strings 找到可用格式说明符的完整引用。页面。

您需要使用“\”对“:”字符进行转义(除非您使用的是逐字字符串,否则它本身必须进行转义)。

本文摘自MSDN Custom TimeSpan Format Strings页面解释了转义“:”和“。”格式字符串中的字符:

The custom TimeSpan format specifiers do not include placeholder separator symbols, such as the symbols that separate days from hours, hours from minutes, or seconds from fractional seconds. Instead, these symbols must be included in the custom format string as string literals. For example, "dd.hh:mm" defines a period (.) as the separator between days and hours, and a colon (:) as the separator between hours and minutes.

关于c# - 在 TimeSpan 上使用 String.Format 输出没有毫秒的完整秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545508/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com