2012-02-21 7 views
0

は私が分割機能を使用しない文字列を分割する方法は?

トークン[10] =「日付:UTC 2012-02-02 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()on –

+0

DateTimeオブジェクトに日付を解析し、DateTime関数を使用してコンポーネントを抽出しないのはなぜですか?年と月を取得し、それらを連結してあなたの希望する価値を得る。 – agarcian

+0

@ agarcian、それは素晴らしいと思う。 – Usher

答えて

4

DateTime.ParseExactメソッドを使用してYearとにアクセスしてください返さDateTimeオブジェクトからのプロパティ、そうでない場合はここでの例で、YYYYMM形式を取得するにはDate/Time string formattersDateTime.ToString(string)メソッドを使用します。

 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

するvar T =トークン[10]を抽出するための他の方法です。

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

または部分および削除:

string Encdate = t.Substring(10, 7).Remove(4); 
(2を追加するための)

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

または使用サブ:

はまた、必要に応じて、文字の連結を使用することができます

+0

私のトークン[10]値は" Date:UTC 2012-02-02 17:09:04 "です。 – Usher

+0

あなたの質問には: トークン= "日付:UTC 2012-02-02 17:09:04" –

+0

ごめんなさい。私の質問と感謝の更新。 – Usher