我如何使用 VB.NET 用一个变量来拆分以下文件名以提取文件名的日期部分?我最初从路径中获取文件名。两个示例:Mozart - Cpt - 03 Aug...
如何使用 VB.NET 用一个变量拆分以下文件名以提取文件名的日期部分?
我最初从路径获取文件名。两个例子:
莫扎特 - Cpt - 2024 年 8 月 3 日.xlsx
莫扎特 - 2024 年 8 月 3 日.xlsx
我有这个代码:
Din Filename as String = ""
Dim mDate as string = format(cdate(split(split(path.getfilename(Filename), "-")(1), ".xlsx")(0)),"yyyy/MM/dd")
第二个示例有效 Mozart - 03 Aug 2024.xlsx
,但 Mozart - Cpt - 03 Aug 2024.xlsx
样本无效。我该如何修复?
您想要将 -
文件名的最后一部分(不带扩展名)解析为 Date
。因此,您可以使用 Split
和 Enumerable.Last
和 Date.TryParseExact
:
Dim lastPart = Path.GetFileNameWithoutExtension(fileName).Split("-"c).Last()
Date.TryParseExact(lastPart, "dd MMM yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, dt)
完整测试代码:
Sub Main
Dim FileNames() As String = {"Mozart - Cpt - 03 Aug 2024.xlsx","Mozart - 03 Aug 2024.xlsx"}
For Each fileName In FileNames
Dim lastPart = Path.GetFileNameWithoutExtension(fileName).Split("-"c).Last()
Dim dt As Date
If Date.TryParseExact(lastPart, "dd MMM yyyy", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, dt)
Console.WriteLine(dt)
End If
Next
End Sub
http://dotnetfiddle.net/sjcWgr