gpt4 book ai didi

c# - 从文件名获取日期时间

转载 作者:太空宇宙 更新时间:2023-11-03 22:32:54 26 4
gpt4 key购买 nike

我有一个名为 test-2000_01_02-10_12_14.xml 的文件。

如何只从文件中获取日期?

如果文件具有以下名称,我就能得到日期:2000_01_02-10_12_14

有了这个(b 是一个 StorageFile):

DateTime dateVal;
bool parsed = DateTime.TryParseExact(b.DisplayName,
"yyyy_MM_dd-H_mm_ss",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None,
out dateVal);

然后我尝试将 yyyy_MM_dd-H_mm_ss 更改为类似这样的 *-yyyy_MM-dd-H-mm_ss 但它似乎不是解决方案

最佳答案

有很多方法可以做到这一点,这实际上取决于文件命名的规律性 - 是否总是有一些垃圾文本后跟大肆宣传,然后是年份?

如果您需要更多量身定制的建议,请张贴另外 10 个不同的示例。这是您发布的一种方式:

DateTime.TryParseExact(
Path.GetFileNameWithoutExtension(b.DisplayName.Substring(b.DisplayName.IndexOf('-')+1)),
"yyyy_MM_dd-H_mm_ss",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None,
out dateVal
);

这使用仅带有一个参数(无长度)的 Substring 来删除第一个连字符之后到字符串末尾的所有内容,并使用 GetFileNameWithoutExtension 来删除 .xml - 这有效地将 anythinghere-2000_01_01-00_00_00.xml 进入 2000_01_01-00_00_00 准备解析

我也可以选择 .Remove("last index of period") 类型的东西,但它确实有点乱,因为你必须减去连字符的起始索引等

MJWill 关于在连字符上拆分的评论也是一个很好的评论 - 您可以拆分然后采用 [1][2] 索引并连接然后重新组合在一起进行解析..

最后不要忘记文件本身可能有一个创建日期,它已经是创建日期的一个很好的候选者,而不是文件名(可能被人为破坏),只要它没有被传输到某个地方并重新保存。查看 FileInfo.CreationTime 属性 - https://learn.microsoft.com/en-us/dotnet/api/system.io.fileinfo?view=netframework-4.8

关于c# - 从文件名获取日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56539742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com