C#比较存储在XML文件中的两个日期时间

Posted

技术标签:

【中文标题】C#比较存储在XML文件中的两个日期时间【英文标题】:C# compare two datetime that stored in XML file 【发布时间】:2021-12-12 08:39:33 【问题描述】:

我有一个包含这些日期时间的 XML 文件。是否可以获取最近时间与上次时间的时差?

例如:在这张照片中,最近的时间是 10/27/2021 09:15,上一次是 10/26/2021 16:52,所以我想得到这两次的差异并在时间后面运行一些东西如果时差超过 2 小时,则差异。 Picture 1

而这次,最晚的时间是10/27/2021 10:32,之前的时间是10/27/2021 09:15,这次我需要和这两个比较。如果时差不超过 2 小时,则什么也不做。 Picture 2

我曾尝试将日期时间保存在 XML 文件中。

        string xmlFilePath = Directory.GetCurrentDirectory() + @"\database.xml";
        XDocument doc;
        try
        
            doc = XDocument.Load(xmlFilePath);
        
        catch
        
            doc = new XDocument(new XElement("DateTime"));
        
        XElement time = doc.Element("DateTime");
        time.Add(new XElement("dateTime",
        new XElement("LastRunTime", DateTime.Now.ToString("g", DateTimeFormatInfo.InvariantInfo))));
        doc.Save(xmlFilePath);

关于下一步获取存储在 XML 文件中的时差的任何建议/想法?

【问题讨论】:

请将代码和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。除了代码格式的文本之外,只有在图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容时,才应该使用图像。 我不明白你有什么问题。从 xml 节点读取原始值,将字符串解析为 DateTime,还是从另一个中减去一个 DateTime? @gunr2171,前一个减去日期时间的问题 操作方法如下:Difference between two DateTimes C#? 使用 ISO 日期/时间格式而不是模棱两可的美国格式将是一个好的开始,因为大多数图书馆都可能使用这种格式。 【参考方案1】:

使用 DateTime.Parse 或 DateTime.TryParse 将字符串从 xml 转换回 DateTime,然后使用 DateTime.Subtract 来获得不同的时间。 您应该考虑在这里查看 DateTime API:https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=net-5.0

【讨论】:

以上是关于C#比较存储在XML文件中的两个日期时间的主要内容,如果未能解决你的问题,请参考以下文章

将 DateTime 与存储在数据库中的日期进行比较

在 C# 中比较两个日期并计算差异

如何在 C# 中使用 csvHelper 将两个单独列中的日期和时间合并到一个新的日期时间列中

Nullable-如何在 C# 中的 DateTime 类型中仅比较没有时间的日期?

C#比较日期时间和当前日期时间[关闭]

在 C# 中使用 mysql 文档存储(Nosql)中的日期字段进行过滤