【发布时间】:2020-06-26 23:22:18
【问题描述】:
我有一个包含所有按日期命名的 .csv 文件的文件夹。它们看起来像这样:
20200625210308.csv --> (yyyyMMddHHmmss)
我正在尝试按日期比较这些文件,以便删除除最新文件之外的所有文件。
假设我已经处理了所有的拆分等;如何将 20200625210308 转换为 UTC 日期以便比较文件?
【问题讨论】:
-
您可以使用 DateTime.ParseExact 将字符串转换为日期。搜索文档以获取有关语法的更多详细信息。
-
您不需要转换它们 - 文件的名称以 SARGable 格式格式化。只需订购它们,或获取文件夹中的“最后一个”文件。或者由于某种原因这不起作用?
-
@Clockwork-Muse 对不起,我应该提到我在编程方面相对较新。我没有听说过 SARGable 格式,我的谷歌搜索让我找到了与 SQL 有关的信息。无论如何,我认为您所说的是由于日期/时间字符串的格式化方式,文件将始终按顺序排列。对吗?
-
@JustinFeistner 是的。只需将文件名排序为字符串(即按字典顺序),它们也会自动按日期顺序排列。
-
是的,完全正确(在此处与 Sweeper 相呼应)。它通常出现在 SQL 中,因为列值需要转换或通过要搜索的函数运行。 (不要太担心自己是新人——我只是在日期/时间方面花了很多时间,所以这让我更加兴奋;我自己在其他领域也有差距)。最后一个问题,我猜 - 你需要转换时区/偏移量,还是这些日期已经在 UTC 时区/
0偏移量中?