C# 如何使用C仅从文件名中提取日期#
我有一种情况,我需要从文件名中提取日期,其一般模式是C# 如何使用C仅从文件名中提取日期#,c#,regex,ssis,etl,script-task,C#,Regex,Ssis,Etl,Script Task,我有一种情况,我需要从文件名中提取日期,其一般模式是[XXXX_bbbbbb]\u yyy-MM-DD[.fileExtension]示例销售人员\u 2019-05-03.xlsx 我在SSIS脚本任务组件中使用c#来实现这一点 下面是我的代码: public void Main() { // TODO: Add your code here string pat; string date; string filename = 'Sales_pers
[XXXX_bbbbbb]\u yyy-MM-DD[.fileExtension]
示例销售人员\u 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#新手无需正则表达式即可实现这一点,只需使用字符串函数(
IndexOf()
和Substring()
):
由于您正在处理固定模式[XXXX_bbbbbb]\u YYYY-MM-DD[.fileExtension]
,只需检索位于第二个下划线之后的10个字符
public void Main()
{
字符串filename=“销售人员2019-05-03.xlsx”;
//仅从文件名获取日期部分
字符串filedate=filename.Substring(filename.IndexOf(“”),filename.IndexOf(“”“)+1)+1,10);
DateTime dt=DateTime.ParseExact(filedate,“yyyy-MM-dd”,System.Globalization.CultureInfo.InvariantCulture,System.Globalization.datetimestyle.None)
Dts.TaskResult=(int)ScriptResults.Success;
}
基本上,我希望以“2019/05/02”格式获取日期“2019-05-03”thanks@user3011898如果它能解决问题。点击答案左侧的标记即可接受