2012-02-21 121 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