格式化字符串的最快/最佳方法

时间:2015-08-14 09:03:36

标签: c# format

我知道这看起来似乎是一个初级问题,通过谷歌搜索它应该很容易找到解决方案,但我被卡住了。

我正在使用C#。

我有这个字符串:

20150824100112345(例如)

我希望将它转换为新的字符串,如下所示:

2015 \ 08 \ 24 \ 10 \ 00 \ 01 \ 12 \ 345

是否有' 1-liner'我可以用来完成这个的代码吗?

NB 没有第一次将其转换为日期时间格式

2 个答案:

答案 0 :(得分:4)

如评论中所述,您应该将其解析为DateTime,然后将其转换为字符串。

但要按照你的要求解析一个字符串,你应该使用一个可以将它分成组的正则表达式。

答案 1 :(得分:3)

如果您不想先解析DateTime(即如果您不关心有效性),并且输入始终被格式化为您的示例(零填充,那么08而不是{{ 1}}),您可以使用一些简单的8调用:

Substring()

或者在Regex中:

string input = "20150824100112345";
string output = input.Substring(0, 4) + @"\" // 2015
              + input.Substring(4, 2) + @"\" // 08
              + input.Substring(6, 2) + @"\" // 24
              + input.Substring(8, 2) + @"\" // 10
              + input.Substring(10, 2) + @"\" // 01
              + input.Substring(12, 2) + @"\" // 12
              + input.Substring(14, 3); // 345