将当前日期时间转换为文化不变量

时间:2013-04-28 05:45:13

标签: date cultureinfo

我需要为我的应用程序设置一个到期日期(我知道它可以被简单地入侵,但这确实不是一个问题或担心,因为将要使用它的人。我只需要每年到期)。我有代码似乎工作,但我想确保它适用于其他文化设置。我尝试将其转换为不变量,但我尝试说它无法转换为日期类型时出错。这就是我所拥有的:

 Private Sub expcheck()
    Try
        Dim format As Date = #5/1/2013#
        Dim edate As Date = format.ToString()
        Dim daysleft As Integer = DateDiff(DateInterval.Day, Now, edate)

        If Date.Now > edate Then
            MsgBox("This program was valid up to " & edate & " and will now close")
            Application.Exit()
        End If
        If daysleft < 30 Then
            MsgBox("This program expires on " & edate & vbNewLine & "You have " & daysleft & " Days left." & vbNewLine & "Export your work before expiry.")
        End If
    Catch e As Exception
        MsgBox(e.Message)
    End Try
End Sub

这似乎有效,但我认为它可能搞砸其他文化设置(我尝试更改我自己的设置/格式,它仍然有效,但不知道为什么。这会起作用吗?

1 个答案:

答案 0 :(得分:2)

我可能已经回答了我自己的问题。它并不漂亮,但通过使用datelabel.text = date.today.tostring("MM/dd/yyyy")将日期写入标签  然后将代码更改为:

Dim edate As DateTime = DateTime.Parse("05/01/2013", System.Globalization.CultureInfo.InvariantCulture)
Dim nowdate As Date = Date.Parse(dateLabel.Text, System.Globalization.CultureInfo.InvariantCulture)
Dim daysleft As Integer = DateDiff(DateInterval.Day, nowdate, edate)

它有效但不漂亮。但是,安全性不是问题,因为只有一个客户端会使用或需要该软件。