[英]TimeSpan and ToString()
我想顯示保存在TimeSpan
中的分鍾、秒和毫秒。 它應該是這樣的:
var d1 = new DateTime(2020, 12, 1, 12, 00, 00);
var d2 = new DateTime(2020, 12, 1, 10, 12, 30);
var d = d1 - d2;
Console.WriteLine(d.ToString(@"mm\:ss\:fff"));
但它返回47:30:000
這只是部分正確,因為它忽略了一個小時。 我希望它被轉換成分鍾,而不是被忽略。
我認為您需要 TimeSpan.TotalMinutes。
https://learn.microsoft.com/en-us/do.net/api/system.timespan.totalminutes?view.net-7.0
在您的情況下,它可能是:
Console.WriteLine($@"{(int)d.TotalMinutes}:{d:ss\:fff}");
TimeSpan
有一個屬性,用於獲取其中包含的總分鍾數,作為double
精度值: TimeSpan.TotalMinutes Property 。
請注意,如果您的TimeSpan
的持續時間不是整分鍾,您將得到一小部分:
var d1 = new DateTime(2020, 12, 1, 12, 00, 00);
var d2 = new DateTime(2020, 12, 1, 10, 12, 30);
var d = d1 - d2;
Console.WriteLine(d.TotalMinutes);
Output:
107.5
請注意, TimeSpan
具有與TotalDays
、 TotalHours
、 TotalSeconds
、 TotalMilliseconds
類似的屬性。
更新:
根據下面的評論,這里有一個以分、秒和毫秒格式打印的解決方案:
var d1 = new DateTime(2020, 12, 1, 12, 00, 00);
var d2 = new DateTime(2020, 12, 1, 10, 12, 30);
var d = d1 - d2;
double totalMin = d.TotalMinutes;
int totalMinInt = (int)totalMin; // will get only the whole minutes.
Console.WriteLine(totalMinInt.ToString() + // print the whole minutes part
":" +
d.ToString(@"ss\:fff")); // print the fraction part
Output:
107:30:000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.