Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将“MM/YYYY”日期改为“YYYYMM”?_C#_Date_String - Fatal编程技术网

C# 如何将“MM/YYYY”日期改为“YYYYMM”?

C# 如何将“MM/YYYY”日期改为“YYYYMM”?,c#,date,string,C#,Date,String,我要转换此字符串格式: 2013年11月 到 2011年11月 因此,假设我的字符串在这个变量中: string s = "11/2013"; 这个问题的代码应该是什么?谢谢 string newString = s.Split('/')[1] + s.Split('/')[0]; 这是最快的: s = s[3] + s[4] + s[5] + s[6] + s[0] + s[1]; 如果你要转换数以百万计的十亿条记录,这将很重要 注意,这个答案假设s匹配,如果不匹配,它将返回一个空字符

我要转换此字符串格式:

2013年11月

2011年11月

因此,假设我的字符串在这个变量中:

string s = "11/2013";
这个问题的代码应该是什么?谢谢

string newString = s.Split('/')[1] + s.Split('/')[0];
这是最快的:

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

如果你要转换数以百万计的十亿条记录,这将很重要

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

当您尝试在没有/的情况下访问[1]时,使用Split将引发IndexOutofFrangeException

当然,您可以添加代码来处理这些情况,而不管您是使用Regex还是Split


或对于[??]/YYYY不可拆分;s、 子字符串。长度-4,4+s。子字符串0,s。长度-5

一切都那么复杂。让我头疼。请尝试以下方法:

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

代码应该是什么让我们问,你试过什么?@Marlon-我能用spliz代码吗?我猜这是因为你问了一个问题,你用谷歌搜索回答这个问题的时间可能比输入这个问题的时间要短。另一方面,很多人因为回答问题而名声大噪,所以我想这并不是完全的损失:。这个问题太懒了。回答这个问题所需要的只是学习C的运行时库。如果你做了一些工作,询问哪种方式是最好的,或者你选择的方式是否合理,那么作为一个有趣的问题,它会得到更好的接受;s=sprime[1]+sprime[0];快,快。。。。如果您只需要转换这一条记录,我们不知道我会说::string s=11/2013;s=201311-@HuibertGill-您是否错过了转换数以百万计的十亿条记录行?这是两行简单的声明性代码。让正则表达式引擎发挥作用。如果您不关心字段包含的内容,请将\d替换为:new Regex^./…$;。此外,您不必担心不匹配的数据:它将被单独保留。遗憾的是,这无法正确匹配月份,因为它允许13-19和00个月。此外,多年来,我看到您正在提前计划,允许从0000到9999的一切。很好,我没有任何计划。问题不是如何解析有效日期。也许这些都不是约会?你怎么知道的?我只是猜测。想想在决定将年份存储在一个字节中时,由于不考虑Y2K而损失了多少钱@佩里的评论是在开玩笑;
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;
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]);
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;
static readonly Regex rx = new Regex( @"^(\d\d)/(\d\d\d\d)$" ) ;
...
string s1 = "12/3456" ;
string s2 = rx.Replace( s1 , @"$2/$1" ) ;