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

发布于 2024-11-09 03:52:55 字数 235 浏览 0 评论 0原文

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

11/2013

201311

那么,假设我的字符串在这个变量中:

string s = "11/2013";

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

I want to convert this string format:

11/2013

TO

201311

So, suppose my string is in this variable:

string s = "11/2013";

What should be the code for this problem? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

荒路情人 2024-11-16 03:52:56
string [] split = s.Split('/');
string str = split[1] + split[0];
string [] split = s.Split('/');
string str = split[1] + split[0];
2024-11-16 03:52:56
string s = "11/2011";
s = String.Format("{0}{1}", s.Split('/')[1], s.Split('/')[0]);
string s = "11/2011";
s = String.Format("{0}{1}", s.Split('/')[1], s.Split('/')[0]);
沫离伤花 2024-11-16 03:52:56

请注意,此答案假设 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;

Note that this answer assumes s will match, and it will return an empty string if it doesn't.

Using Split will throw an IndexOutOfRangeException when you try to access [1] when there was no /.

You could of course add code to handle these cases regardless of whether you use Regex or 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;
哀由 2024-11-16 03:52:56

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

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

All so complicated. Makes my head hurt. Try this instead:

static readonly Regex rx = new Regex( @"^(\d\d)/(\d\d\d\d)$" ) ;
...
string s1 = "12/3456" ;
string s2 = rx.Replace( s1 , @"$2/$1" ) ;
颜漓半夏 2024-11-16 03:52:56

或不分流 [??]/YYYY; s.Substring(s.Length - 4, 4) + s.Substring(0, s.Length - 5);

Or Splitless for [??]/YYYY; s.Substring(s.Length - 4, 4) + s.Substring(0, s.Length - 5);

薄荷梦 2024-11-16 03:52:56
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;
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;
南城追梦 2024-11-16 03:52:55
 sprime = s.Split(new char [] {'/'});
 s = sprime[1] + sprime[0];

这是最快的:

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

如果您要转换数十亿条记录,这将很重要。

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

This is fastest:

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

If you are converting a gazillion billion records it will matter.

无语# 2024-11-16 03:52:55
string newString = s.Split('/')[1] + s.Split('/')[0];
string newString = s.Split('/')[1] + s.Split('/')[0];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文