如何截斷C#中的時間跨度對象的秒位?即15:37TimeSpan刪除秒
我輸出的時間跨度對象格式爲HH:mm的JavaScript,並希望服務器端處理提供正確的格式,而不是客戶端瀏覽器,可以做到這一點,而不提供此爲一個C#字符串對象到JavaScript?
如何截斷C#中的時間跨度對象的秒位?即15:37TimeSpan刪除秒
我輸出的時間跨度對象格式爲HH:mm的JavaScript,並希望服務器端處理提供正確的格式,而不是客戶端瀏覽器,可以做到這一點,而不提供此爲一個C#字符串對象到JavaScript?
您可以截斷 '滴答' 值這是一個時間跨度的核心:
TimeSpan t1 = TimeSpan.FromHours(1.551);
Console.WriteLine(t1);
TimeSpan t2 = new TimeSpan(t1.Ticks - (t1.Ticks % 600000000));
Console.WriteLine(t2);
給出:
01:33:03.6000000
01:33:00
謝謝,但我需要01:33在我的情況下輸出 – Maya 2011-02-24 22:57:58
@Maya「1:33」是一個字符串。你剛纔說你想要一個TimeSpan而不是一個字符串。 – CodesInChaos 2011-02-24 22:59:54
然後,您需要發送預格式化的字符串,而不是TimeSpan。我看過這個問題,'我怎麼做,而不發送一個字符串',抱歉。 – 2011-02-24 23:00:04
我相信這就是你要找的。
string.Format("{0:H:mm}",myTime)
如果'myTime'是'TimeSpan'(* System.FormatException:輸入字符串的格式不正確*。) – 2011-02-24 22:52:52
@Fredrik,那麼這段代碼會崩潰,不過,對不起,'H:mm'應該是您要查找的轉換器。 – 2011-02-24 22:59:22
我不明白你的意思。 'H:mm'不是[TimeSpan]的格式字符串(http://msdn.microsoft.com/zh-cn/library/ee372287.aspx)。對於'DateTime'是的,但不適用於'TimeSpan'。 – 2011-02-24 23:03:43
您可以使用格式字符串爲:
public string GetTimeSpanAsString(TimeSpan input)
{
return input.ToString(@"hh\:mm");
}
也許是這樣的。這將使用整數除法的截斷截斷爲幾分鐘,接着乘除數。
return TimeSpan.FromTicks(input.Ticks/TicksPerMinute*TicksPerMinute);
也許不是最優的,但容易閱讀:
TimeSpan.FromMinutes((long)duration.TotalMinutes);
如果你格式化時間跨度爲HH:MM是不是已經秒鐘截斷? – 2011-02-24 22:46:43
您是否真的想將TimeSpan中的秒數設置爲0,或者在轉換爲字符串時只是省略它們? – CodesInChaos 2011-02-24 22:46:45
看看這個答案http://stackoverflow.com/questions/338658/can-you-round-a-net-timespan-object/338705#338705 – 2011-02-24 22:52:46