拿来就用 VB.net中实现时间到Unix时间戳的互换

vb.net中不能直接处理unix时间戳(unixtimestamp),为什么非得要在vb.net中用时间戳这种形式呢?我觉得吧,unix时间戳存储格式统一,处理起来也非常简单,就是从储存到操作都比较容易。而且在linux系统中还默认都支持unix时间戳。在vb.net中实现unix时间戳的转换很容易,也有很多库可以用,不过更简单的方法是写两个函数,就解决了。详情如下

'把Unix时间戳转换成Date格式   
Public Function UnixToTime(ByVal strUnixTime As String) As Date
    UnixToTime = DateAdd(DateInterval.Second, Val(strUnixTime), #1/1/1970#)
    If UnixToTime.IsDaylightSavingTime = True Then
        UnixToTime = DateAdd(DateInterval.Hour, 1, UnixToTime)
    End If
End Function
'把Date格式转换成unix时间戳
Public Function TimeToUnix(ByVal dteDate As Date) As String
    If dteDate.IsDaylightSavingTime = True Then
        dteDate = DateAdd(DateInterval.Hour, -1, dteDate)
    End If
    TimeToUnix = DateDiff(DateInterval.Second, #1/1/1970#, dteDate)
End Function

注意:要注意一点,如果转换出的时间比现在早了8个小时,那是因为这个函数是按默认时区处理的,需要在转换之前,先加上-8小时,就正确额,像下面这样。

TimeToUnix((now).addhours(-8))

发表评论