我有一个字符串01-Jan-2014 00:00:00
,我打算将这一年缩短为2个字符。
我的代码:
DateTime dtParsedDate = new DateTime();
string strInput = "01-Jan-2014 00:00:00";
Regex regDate = new Regex(@"\d{2}-\w{3}-\d{4}");
// parse into datetime object
dtParsedDate = DateTime.ParseExact(regDate.Match(strInput).Value, "dd-MMM-yyyy", CultureInfo.InvariantCulture);
// replace the string with new format
regDate.Replace(arrData[iCol], dtParsedDate.ToString("dd-MMM-yy"));
我已经使用正则表达式验证了字符串是否正确匹配。
" 01-JAN-2014"没有被替换为" 01-Jan-14"。我的代码出了什么问题?
答案 0 :(得分:2)
在.NET中,字符串是不可变的,并且所有替换方法都不会就地替换,但会返回一个替换完成的新字符串。
答案 1 :(得分:2)
Regex.Replace
和String.Replace
不修改现有字符串:它们返回修改后的字符串。尝试将代码更改为:
arrData[iCol] = regDate.Replace(arrData[iCol], dtParsedDate.ToString("dd-MMM-yy"));