我该如何重新表述“;MM/YYYY”;日期为“;YYYYMM”;

本文关键字:YYYY 日期 YYYYMM 何重新 MM | 更新日期: 2023-09-27 17:57:28

我想转换这个字符串格式:

2013年11月

TO

201311

所以,假设我的字符串在这个变量中:

string s = "11/2013";

这个问题的代码应该是什么?谢谢

我该如何重新表述“;MM/YYYY”;日期为“;YYYYMM”;

 sprime = s.Split(new char [] {'/'});
 s = sprime[1] + sprime[0];

这是最快的:

 s = s[3] + s[4] + s[5] + s[6] + s[0] + s[1];

如果你正在转换数以十亿计的记录,这将很重要。

string newString = s.Split('/')[1] + s.Split('/')[0];
string [] split = s.Split('/');
string str = split[1] + split[0];
string s = "11/2011";
s = String.Format("{0}{1}", s.Split('/')[1], s.Split('/')[0]);

注意,这个答案假设s将匹配,如果不匹配,它将返回一个空字符串。

当您尝试在没有/的情况下访问[1]时,使用Split将抛出IndexOutOfRangeException

当然,无论使用Regex还是Split,都可以添加代码来处理这些情况。

string s = "11/2013";
// Match 1+ digits followed by a forward slash followed by 1+ digits
Regex r = new Regex(@"('d+)/('d+)");
var m = r.Match(s);
string result = m.Groups[2].Value + m.Groups[1].Value;

一切都很复杂。让我头疼。试试这个:

static readonly Regex rx = new Regex( @"^('d'd)/('d'd'd'd)$" ) ;
...
string s1 = "12/3456" ;
string s2 = rx.Replace( s1 , @"$2/$1" ) ;

对于[??]/YYYY为无拆分;s.Substring(s.Length - 4, 4) + s.Substring(0, s.Length - 5);

string s = "11/2013";
Regex r = new Regex("^(?<month>[0-1]?[0-9])/(?<year>[0-9]{4})$");
var match = r.Match(s);
string month = match.Groups["month"].Value;
string year = match.Groups["year"].Value;
string result = year + month;