Làm cách nào để nhận được giây kể từ thời đại (1/1/1970) trong VBA?Làm thế nào để có được giây kể từ thời đại (1/1/1970) trong VBA?
9
A
Trả lời
14
Làm thế nào về:
datediff("s",#1970/1/1#,now())
1
Dưới đây là một giải pháp: http://vbcity.com/forums/t/5084.aspx
Function UnixTime() As Variant
'The first parameter determines how the
' difference will be measured in i.e. "S" for seconds
UnixTime = DateDiff("S", "1/1/1970", Now())
End Function
9
This nên chạy nhanh hơn so với giải pháp DATEDIFF:
Private Function Long2Date(lngDate As Long) As Date
Long2Date = lngDate/86400# + #1/1/1970#
End Function
Private Function Date2Long(dtmDate As Date) As Long
Date2Long = (dtmDate - #1/1/1970#) * 86400
End Function
này không cho phép các múi giờ, unix thời gian là utc – iKode
Vâng, tôi đã thay đổi nó thành 'dateiff (" s ", # 1970/1/1 #, dateadd ("h", 5, now())) '... không chắc chắn những gì tôi sẽ làm khi DST cuộn quanh mặc dù. –
Vì vậy, không có cách nào để xử lý việc chuyển đổi sang UTC tự động? – R01k