0

我试图比较一天中两次之间的差异。我正在以 UTC 格式获取时间。我是否必须将 DateTime 转换为整数才能获得差异,如果是,如何?

这是我的代码

Dim ct As DateTime = DateTime.UtcNow
        Dim int_ct As Integer = Convert.ToInt32(ct)
        MsgBox(ct + " | " + int_ct)
        If (System.IO.File.Exists(System.IO.Path.GetTempPath.ToString + "\tempfile.data")) Then
            Dim time As DateTime = System.IO.File.ReadAllText(System.IO.Path.GetTempPath.ToString + "\tempfile.data")
            Dim int_time As Integer = Convert.ToInt32(time)
            If ((int_ct - unlockedtime) < int_time) Then 'unlockedtime is Int variable
                Return False
            Else
                Return True
            End If
        End If
4

3 回答 3

2

您不需要进行任何时区转换,只需确保在捕获它们时两个日期/时间值都在同一个时区(尽管我认为UtcNow如果系统时区在您的两个之间发生变化可能是明智的测量。

您无需转换值即可Int32获得差异,只需使用以下DateTime.Subtract方法:

Dim old As DateTime = GetOldDateTime()
Dim now As DateTime = DateTime.UtcNow
Dim diff As TimeSpan = now.Subtract( old )

If diff.TotalSeconds > someSecondsValue Then
    DoSomething()
End If
于 2013-07-02T19:15:23.383 回答
1

正如戴所说,您可能想比较差异,但如果您只想要日期差异,您可以使用以下内容:

DateDiff(DateInterval.Minute, Date1, date2)

这会将差值作为整数返回,您可以将所需的任何日期间隔设置为第一个参数。

于 2013-07-02T19:40:16.540 回答
1

你试过 Datetime.Compare(dt1,dt2) 吗?根据您需要多少细节,这可能对您有用。

以下是有关该功能的更多信息:http: //msdn.microsoft.com/en-us/library/system.datetime.compare.aspx ?cs-save-lang=1&cs-lang=vb#code-snippet-1

于 2013-07-02T19:18:18.110 回答