如何使用C#从文件名中提取日期

3

我有一个情况,需要从文件名中提取日期,文件名的一般模式为[XXXX_BBBB]_YYYY-MM-DD[.fileExtension]例如Sales_person_2019-05-03.xlsx

我正在使用SSIS脚本任务组件中的c#来实现这个目标。

以下是我的代码:

public void Main()
{

            // TODO: Add your code here
   string pat;
   string date;
   string filename = 'Sales_person_2019-05-03.xlsx'

   // Get the Date part from the file name only
   pat = @"[0-9]{2}[0-9]{2}[0-9]{4}";
   Regex r = new Regex(pat, RegexOptions.IgnoreCase);
   date = r.Match(filename);
   MessageBox.Show(date.ToString());}


    Dts.TaskResult = (int)ScriptResults.Success;
}

但是这并没有起作用。有人能帮忙吗,谢谢。我是C#的新手。


基本上,我想以这种格式“2019/05/02”获取这个日期“2019-05-03”,谢谢。 - user3011898
1个回答

0
您可以使用字符串函数(IndexOf()Substring())而不是常规表达式来实现此目的:
由于您正在处理固定模式 [XXXX_BBBB]_YYYY-MM-DD[.fileExtension],只需检索第二个下划线后面的10个字符即可。
public void Main()
{

    string filename = "Sales_person_2019-05-03.xlsx";

    // Get the Date part from the file name only
    string filedate = filename.Substring(filename.IndexOf('_',filename.IndexOf('_') + 1) + 1,10);

    DateTime dt = DateTime.ParseExact(filedate, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None)

    Dts.TaskResult = (int)ScriptResults.Success;
}

1
如果这解决了您的问题,请随意通过单击答案左侧的标记接受它。 - Hadi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接