'时间戳常量
Private Const TimeZone_China As Long = &H8 '中国(北京)时区[东八区]
Private Const TimeStamp_Base As Date = #1/1/1970# '时间戳起始时间:1970年1月1日 0时0分0秒
Private Const TimeStamp_Max As Date = #1/19/2038 11:14:07 AM# '时间戳最大值(&H7FFFFFFF)
Private Const TimeStamp_Min As Date = #12/14/1901 4:45:52 AM# '时间戳最小值(&H80000000)
'日期格式转时间戳,默认加上东八区(北京时间)的时差
Public Function TimeStampFromDate(Optional TimeStamp As Date, Optional TimeZone As Long = TimeZone_China) As Long
Dim DateTimeStamp As Date
If TimeStamp > TimeStamp_Max Or TimeStamp < TimeStamp_Min Then TimeStamp = Now
DateTimeStamp = DateAdd("h", -TimeZone, TimeStamp)
TimeStampFromDate = DateDiff("s", TimeStamp_Base, DateTimeStamp)
End Function
'时间戳转日期格式,默认除去东八区(北京时间)的时差
Public Function TimeStampToDate(TimeStamp As Long, Optional TimeZone As Long = TimeZone_China) As Date
Dim DateTimeStamp As Date
DateTimeStamp = DateAdd("s", TimeStamp, TimeStamp_Base)
TimeStampToDate = DateAdd("h", TimeZone, DateTimeStamp)
End Function
Private Sub Form_Load()
Debug.Print "TimeStampTest", TimeStampFromDate(Now), TimeStampToDate(TimeStampFromDate(Now))
Unload Me
End Sub
VB6 时间戳函数
最新推荐文章于 2024-08-14 10:32:08 发布