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))