如何将日期字符串转换为 UTC 格式

How to convert date string to UTC format

我有一个以日期命名的 .csv 文件文件夹。它们看起来像这样:

20200625210308.csv --> (yyyyMMddHHmmss)

我正在尝试按日期比较这些文件,这样我就可以删除除最新文件之外的所有文件。

假设我已经处理了所有拆分等;如何将 20200625210308 转换为 UTC 日期以便比较文件?

这是一个简单的控制台应用程序,可为您提供 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();
        }
    }
}

您不需要将它们转换为 DateTime 值:您的 date/time 字符串 20200625210308.csv 的基本名称是 ISO 8601 紧凑型YYYYMMDDhhmmss。 ISO 8601 date/time 值是 设计的 以正确整理和比较。

一个简单的字符串比较就足够了。

给定 string[] 个文件名 filenames,您只需说

var mostRecentFileName = filenames.Max();

无需过度设计解决方案。