7
votes

Conversion de DateTime au nombre de secondes dans VB .NET

Pour convertir le nombre de secondes en DateTime, dans VB .NET, j'utilise le code suivant:

    Dim startDate As New DateTime(1970, 1, 1)
    Dim targetDate As DateTime
    Dim noOfSeconds As Integer = DataInSeconds

    targetDate = startDate.AddSeconds(noOfSeconds)


0 commentaires

4 Réponses :


9
votes

Lorsque vous soustrayez DateTime des instances les uns des autres, vous obtenez un tispan - Vous pouvez l'utiliser pour obtenir le nombre de secondes: xxx


0 commentaires

4
votes

1/1/1970 est l'époque Unix. Attention à ce que c'est une date UTC, vous ne pouvez pas ignorer cela dans les conversions. Ainsi:

Module DateConversion
    Public ReadOnly Property Epoch() As DateTime
        Get
            Return New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
        End Get
    End Property

    Public Function FromUnix(ByVal seconds As Integer, local As Boolean) As DateTime
        Dim dt = Epoch.AddSeconds(seconds)
        If local Then dt = dt.ToLocalTime
        Return dt
    End Function

    Public Function ToUnix(ByVal dt As DateTime) As Integer
        If dt.Kind = DateTimeKind.Local Then dt = dt.ToUniversalTime
        Return CInt((dt - Epoch).TotalSeconds)
    End Function
End Module


0 commentaires

0
votes
Label1.Text = New DateTime(1970, 1, 1, 0, 0, 0, 
    DateTimeKind.Utc).AddSeconds(CLng(TextBox1.Text) / 1000)      
Make a textbox and a button and a label, put this code into the button and depending if you're using microseconds (keep the /1000) or seconds (delete the /1000) will show you the date/time etc.

0 commentaires

0
votes
Public Function Date2Unix(ByVal vDate As Date) As Long
 Return (vDate - #1970/01/01#).TotalSeconds
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 MsgBox(Date2Unix(Now()))
End Sub

1 commentaires

Salut! Veuillez ajouter une explication à la solution en tant que code que des réponses seulement sont généralement découragées. Merci! --De revue.