繁体   English   中英

从程序中获取错误的日期时间 VB.net

[英]Get False Datetime From The Program VB.net

我有一个程序可以向我发送任何帐户的时间。

对于某些人来说,程序将日期时间发送到数据库,如2020-05-17 11:33:00

对于某些人来说,程序将日期时间发送到数据库,如0000-00-00 00:00:00

一张照片证明这一点:

日期时间照片

获取日期时间的代码是:

Imports System.Globalization
Imports System.Net

    Public Shared Function GetNistTime() As DateTime
        Dim myHttpWebRequest = CType(WebRequest.Create("http://www.microsoft.com"), HttpWebRequest)

        Dim response = myHttpWebRequest.GetResponse()
        Dim todaysDates As String = response.Headers("date")
        Return DateTime.ParseExact(todaysDates, "ddd, dd MMM yyyy HH:mm:ss 'GMT'", CultureInfo.InvariantCulture.DateTimeFormat, DateTimeStyles.AssumeUniversal)
    End Function

那么解决方法是什么? 这些人可以在他们的机器上安装什么来防止这种情况,比如安装 .NET Framework 3.5

不知道安装.NET Framework 3.5能不能解决这个问题!

我认为它可以解决问题,因为我在我的 PC 上找到了它,而在另一台我得到日期时间为0000-00-00 00:00:00的 PC 上没有安装它。

根据你的说法,你应该首先验证它是否只是由于.NET Framework 3.5安装相关的问题。 如果不是,请尝试以下代码:

Try
    Dim client = New TcpClient("time.nist.gov", 13)
    Dim myDateTime As Date

    Using streamReader = New StreamReader(client.GetStream())
        Dim response = streamReader.ReadToEnd()
        Dim utcDateTimeString = response.Substring(7, 17)

        Dim localDateTime = Date.ParseExact(utcDateTimeString, "yy-MM-dd HH:mm:ss",
                    CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal)

        myDateTime = localDateTime
    End Using

    MsgBox(myDateTime.ToString)

    Catch ex As SocketException
        MsgBox("Unable to connect to the time server.", "Connection Failed!")
End Try

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM