如何拆分字符串以获取日期

时间:2011-10-12 16:57:57

标签: c# .net string split

我有这样的字符串......

 string a = backup-2011-10-12_17-16-51.zip

如何拆分上面的字符串以便只获取此部分2011-10-12

为此,我在下面尝试了这个,但我不确定如何将字符串拆分为这样

2011-10-12

  string[] getfiledate = a.Split(new[] { '.', '-','_' });

任何人都会帮忙解决如何分割一个字符串...... .....

非常感谢提前..

5 个答案:

答案 0 :(得分:4)

如果字符串的长度始终相同,请使用

a.Substring(7,10)

答案 1 :(得分:3)

正则表达式在这里会有所帮助。

(\d{4}-\d{2}-\d{2})

答案 2 :(得分:2)

这是我个人的最爱:

DateTime dt = DateTime.ParseExact("backup-2011-10-12_17-16-51.ip", "backup-yyyy-dd-MM_HH-mm-ss.ip", null);

这可以避免子串计算,但是如果你注意到我必须在你的例子中从zip中删除z,因为在时区计算中z是gmt偏移...如果你可以避免z,那么这非常好用。

编辑获得更棒的答案

使用@和\来转义z:

DateTime dt = DateTime.ParseExact("backup-2011-10-12_17-16-51.zip", @"backup-yyyy-dd-MM_HH-mm-ss.\zip", null);

答案 3 :(得分:0)

如果您可以一直期望这种确切的格式

 string a = "backup-2011-10-12_17-16-51.zip";
 var temp = a.Replace("backup-", String.Empty);
 temp = temp.Substring(0, temp.IndexOf('_'));

答案 4 :(得分:0)

非常快速和肮脏

string a = "backup-2011-10-12_17-16-51.zip";
string g = a.Replace("backup-", string.Empty);
string k = g.Remove(g.IndexOf("_"));