簡體   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