我有一个.csv文件的文件夹,所有文件均按日期命名。他们看起来像这样:
20200625210308.csv->(yyyyMMddHHmmss)
我正在尝试按日期比较这些文件,以便可以删除除最新文件以外的所有文件。
假设我已经处理了所有拆分操作,等等;如何将20200625210308
转换为UTC日期,以便可以比较文件?
答案 0 :(得分:2)
您无需将它们转换为DateTime
值:日期/时间字符串20200625210308.csv
的基本名称为 ISO 8601紧凑格式 < / em>:YYYYMMDDhhmmss
。 ISO 8601日期/时间值是 设计 设计的,目的是为了正确整理和比较。
一个简单的字符串比较就足够了。
假设其中有string[]
个文件名filenames
,
var mostRecentFileName = filenames.Max();
无需过度设计解决方案。
答案 1 :(得分:0)
这是一个简单的控制台应用程序,可为您提供UTC的算法。您必须从UTC结果中找出想要的内容,然后再进行自己的文件日期比较。
using System;
using System.Globalization;
namespace DateTimeFormatTest
{
class Program
{
private static string format = "yyyyMMddHHmmss";
static void Main(string[] args)
{
Console.WriteLine(GiveMeTheDateTimeInUtc("20200625210308"));
Console.ReadLine();
}
private static string GiveMeTheDateTimeInUtc(string filename)
{
var dateTime = DateTime.ParseExact(filename, format, CultureInfo.InvariantCulture);
return dateTime.ToUniversalTime().ToString();
}
}
}