2013-02-09 81 views
1

我在下面的格式幾串:轉換不規則字符串時間跨度在C#

「1時15分」
「:45」
「1時三十分45秒」

我需要它們轉換爲TimeSpan,但是當我TimeSpan.Parse其中一些(例如第一個)時,它會將其返回爲1小時15分鐘,我希望它在1分15秒內。

任何意見將不勝感激!

回答

1

在未知字符串需要在下面指定的具體形式:

[ws][-]{ d | [d.]hh:mm[:ss[.ff]] }[ws] 

因此,「1:15」,將作爲處理HH:MM。如果您傳遞1分15秒,則需要將參數字符串重新格式化爲"00:01:15"。您可以簡單地將字符串分割爲相應的天,小時,分鐘,ss變量並使用它們來分配您的TimeSpan對象。

MSDN這裏有很好的文檔:

http://msdn.microsoft.com/en-us/library/se73z7b9.aspx

+0

哈哈這實際上是我需要擺脫它......像「零時01分15秒」的字符串這就是我所需要的時間跨度爲。但是這確實給了我一個關於如何獲得這個字符串的想法,所以謝謝! – CCEPROD 2013-02-09 06:52:01

5

你可以使用的TimeSpan.ParseExact過載,它允許您指定的確切format specifiers陣列。

var formats = new string[] {@"m\:s", @"\:s", ...}; 
var timeSpace = TimeSpan.ParseExact(input, formats, CultureInfo.CurrentCulture); 

注意ParseExact以.Net推出4

+0

謝謝!奇蹟般有效 – CCEPROD 2013-02-09 06:51:29