我正在尝试解析文件名(字符串)并使用以下行将它们转换为powershell中的日期:
([datetime]::ParseExact($DirName.BaseName,'yyyyMMdd',$null)
问题是,并非该目录下的所有文件夹都遵循该命名约定。我如何首先测试文件夹是否符合命名约定,如果符合,将其转换为日期时间对象?
我懒得先检查一下。把电话放到try..catch
区就行。我建议使用InvariantCulture
而不是$null
。
$culture = [Globalization.CultureInfo]::InvariantCulture
try {
[datetime]::ParseExact($DirName.BaseName, 'yyyyMMdd', $culture)
} catch {
# not a valid date
}