2012-02-21 119 views
0

下面我有這個參數如何拆分字符串不使用拆分功能?

令牌[10] =「日期:2012-02-02 UTC 17時09分04秒」

我寫了下面的代碼只提取年份和月份,所以它假設成爲「201202」。 這是無論如何,我只能得到與使用分離出來的價值,我知道我們可以使用正則表達式太多,但,這是任何其他方式來提取這些值

 string Encdate = tokens[10]; 
     string[] EncdateValue = Encdate.ToString().Split(' '); 
     string Encdatesplit = EncdateValue[2].TrimStart(); 
     string[] YYMM = Encdatesplit.ToString().Split('-'); 
     string YYMMVal = YYMM[0] + YYMM[1]; 
+0

可以做一個小的字符串操作,將其轉換爲一個日期,然後做一個格式化.ToString()對其 – 2012-02-21 00:21:49

+0

爲什麼不將日期解析到DateTime對象中並使用DateTime函數提取組件。獲取年份和月份並將它們連接起來以獲得您想要的價值。 – agarcian 2012-02-21 00:23:09

+0

@ agarcian,這聽起來不錯。 – Usher 2012-02-21 00:26:47

回答

4

只需使用DateTime.ParseExact方法和訪問Year和從返回DateTime對象個屬性,否則使用Date/Time string formattersDateTime.ToString(string)方法來獲得YYYYMM格式,這裏有一個例子:

 var d = DateTime.ParseExact(token, "'Date: UTC' yyyy-MM-dd HH:mm:ss", 
       CultureInfo.InvariantCulture, 
       DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal); 

     Console.WriteLine(d.ToString("yyyyMM")); 
0

變種T =令牌[10];

您也可以使用所需的字符的連接:

string Encdate = t[10] + t[11] + t[12] + t[13] + t[15] + t[16]; 

或者使用字符串(用於添加二):

string Encdate = t.Substring(10, 4) + t.Substring(15, 2); 

或者一個子和刪除:

string Encdate = t.Substring(10, 7).Remove(4); 
+0

我的令牌[10]值是「Date:UTC 2012-02-02 17:09:04」。 – Usher 2012-02-21 00:28:31

+0

在你的問題指出: 令牌=「日期:2012-02-02 UTC 17時09分04秒」 – 2012-02-21 00:35:50

+0

對不起that.Updated我的問題,謝謝。 – Usher 2012-02-21 00:38:32