首页 > 解决方案 > 如何使用 VB.Net 比较两个日期时间值而不是字符串

问题描述

如何比较两个日期时间值?

例如,根据以下条件,我的FDatetimes值是来自数据库的字符串(即 2021-06-21 17:00:30Z),SDatetimes值应该是Datetime.UtcNow. 所以我的要求是左右两边总是比较日期时间而不是字符串。

我也尝试过使用Convert.ToDateTime(FDatetimes). 但是这里有一个问题。每当我使用上述功能时,时间都会更改为 2021-06-21 10:00:30Z。我的主要目的是将两个字段值作为 DateTime 而不是 String 进行比较。请帮助 VB.Net

If FDatetimes < SDatetimes Then
  'My logic
End If

标签: vb.netdatetime

解决方案


因此,为了解决 DST 问题,我这样做了(我于 2021 年 6 月 23 日当地时间上午 9:20,世界标准时间 14:20 运行)

Dim SDatetimes As DateTime = DateTime.UtcNow
Dim FDatetimes As String = "2021-06-23 15:20:30Z"

Dim FDT As DateTime = DateTime.ParseExact(FDatetimes,
                          "yyyy-MM-dd HH:mm:ssZ",
                           Globalization.CultureInfo.InvariantCulture,
                           Globalization.DateTimeStyles.AdjustToUniversal Or
                           Globalization.DateTimeStyles.AssumeUniversal)

Debug.WriteLine(SDatetimes.ToString)
Debug.WriteLine(FDT.ToString)
If FDT < SDatetimes Then
    'My logic
    Stop
End If

推荐阅读