如何设置一个 Date/Time,它不会依赖于当前 PC 的 Date/Time 使用 VB.net
How do I Set a Date/Time, that wont rely on the Current PC's Date/Time using VB.net
我正在尝试开发一个不依赖于当前系统时间的应用程序;
即使我更改 PC/System 上的日期和时间,它也不会改变。
不幸的是,如果你想测量时间间隔,你需要选择一个时钟作为参考。阅读您的 和您的评论,我的印象是您只想知道自给定时间实例以来经过了多少时间。
如果你只是担心 spring 和秋天的日光变化,你应该只使用系统时间作为 UTC:
Public StartDate As Date = Date.UtcNow
...
Dim elapsed As TimeSpan = Date.UtcNow - StartDate
如果你也想忽略系统管理员更改系统时间的时间,则需要依赖CPU的高精度计数器(虽然不能用来测量不同运行时间之间的时间)你的程序):
Imports System.Diagnostics
...
Dim myClock As New StopWatch()
myClock.Start()
...
Dim elapsed As TimeSpan = myClock.Elapsed
如果你想在数据库服务器上使用系统时间,你应该查询:
Dim query As String = "SELECT GETDATE()"
Using connection As New SqlConnection("your connection string here"), _
cmd As New SqlCommand(query, connection)
connectionn.Open()
Dim timeOnSqlServer As Date = Convert.ToDateTime(cmd.ExecuteScalar())
End Using
我正在尝试开发一个不依赖于当前系统时间的应用程序;
即使我更改 PC/System 上的日期和时间,它也不会改变。
不幸的是,如果你想测量时间间隔,你需要选择一个时钟作为参考。阅读您的
如果你只是担心 spring 和秋天的日光变化,你应该只使用系统时间作为 UTC:
Public StartDate As Date = Date.UtcNow
...
Dim elapsed As TimeSpan = Date.UtcNow - StartDate
如果你也想忽略系统管理员更改系统时间的时间,则需要依赖CPU的高精度计数器(虽然不能用来测量不同运行时间之间的时间)你的程序):
Imports System.Diagnostics
...
Dim myClock As New StopWatch()
myClock.Start()
...
Dim elapsed As TimeSpan = myClock.Elapsed
如果你想在数据库服务器上使用系统时间,你应该查询:
Dim query As String = "SELECT GETDATE()"
Using connection As New SqlConnection("your connection string here"), _
cmd As New SqlCommand(query, connection)
connectionn.Open()
Dim timeOnSqlServer As Date = Convert.ToDateTime(cmd.ExecuteScalar())
End Using