如何分割字符串以仅获取日期

本文关键字:获取 取日期 字符串 何分割 分割 | 更新日期: 2023-09-27 18:11:00

我已经得到了下面这样的字符串....

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

我如何分割上述字符串,以便只得到这一部分2011-10-12

对于我已经尝试了这个下面,但我不知道如何分割字符串确切像这样

2011-10-12

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

有谁能帮助如何分割一个字符串.. .....

如何分割字符串以仅获取日期

如果字符串总是相同的长度,则使用

a.Substring(7,10)

在这里使用正则表达式会更好。

('d{4}-'d{2}-'d{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);

如果你可以一直使用相同的格式,这将是可行的

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

非常快和脏

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