2011-03-03 139 views
0

我有一個查詢就像我想從日期顯示自定義格式的時間信息,如(1分06秒)。我有一個在數據庫中的存檔持續時間,當我綁定我的數據控制,然後在項目我想以上述格式顯示(1分06秒),所以有可能嗎?數據時間格式(持續時間)

+0

這個持續時間的最小值和最大值是多少?它會進入幾個小時,幾天和幾個月嗎?以及數據如何存儲在數據庫中。它是日期時間類型嗎? – 2011-03-03 10:02:29

+0

這是分鐘和秒 – Anil 2011-03-03 10:03:22

+0

是否存儲在一個數據庫列中,如果是,它是如何分開的。你能告訴我們持續時間是如何存儲在數據庫中的嗎? – 2011-03-03 10:05:41

回答

0

給你的DateTime變量,你可以做到以下幾點:

var rr = dt1.ToString("mm'min 'ss'sec'"); 

或者,如果你有一個時間跨度:

你需要使用一個時間跨度爲這個。甲簡單的方法如下:

var ts = new TimeSpan(0, 2, 30); 
    var result = ts.Minutes.ToString() + "min " + ts.Seconds.ToString() + "sec"; 

在本例中,我所設定的時間跨度變量爲2分30秒。

或者,如果你有兩個日期: 如果你有兩個日期,你可以做一個diff,並獲得時間跨度,並從那裏使用的代碼,我上面顯示:

var dt1 = new DateTime(2011, 01, 01, 12, 01, 00); 
    var dt2 = new DateTime(2011, 01, 01, 12, 03, 30); 
    var diffTimeSpan = dt2.Subtract(dt1); 
    var r = diffTimeSpan.Minutes.ToString() + "min " + diffTimeSpan.Seconds.ToString() + "sec"; 
+0

只是爲了澄清一點:Timespan是(int小時,int分鐘,int秒)你可以從你的DateTime對象中提取信息 – 2011-03-03 10:09:02

+0

@ Uw你正確的概念 – 2011-03-03 10:14:07

+0

I認爲你的第一個例子中的你的文字指示符需要放在每一個字母之前,即'\\ m \\ i \\ n'。如果你想表示塊作爲文字,你必須像我的min''類型的表達那樣去做,我相信。另外你的TimeSpan應該使用內置的.ToString()格式,就像你的DateTime例子一樣,它有點長/很難,否則很難擴展。使用.ToString格式,您可以將該格式設置爲一個字符串常量,在需要時更改顯示屏非常簡單。 – mike 2011-03-03 10:24:18

1

您可以使用System.TimeSpan結構。它代表時間間隔。 MSDN

2

結帳這個文件 - http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

但是,假設你有一個DateTime對象,這樣的事情應該做的伎倆:

var test1 = DateTime.UtcNow.ToString("m'min 's'sec'"); 

或者爲TimeSpan

var test2 = TimeSpan.FromSeconds(123).ToString("m'min 's'sec'"); 

你可以很容易地添加小時/天/等。取決於你想要的確切格式。如果您的對象不是DateTime或TimeSpan對象,則必須執行一些自定義操作。