Come posso ottenere secondi da epoca (1/1/1970) in VBA?Come ottenere secondi da epoca (1/1/1970) in VBA?
9
A
risposta
14
ne dite:
datediff("s",#1970/1/1#,now())
1
Ecco una soluzione: 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 dovrebbe correre più veloce rispetto alla soluzione 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
questo non consente fusi orari, unix time is utc – iKode
Sì, l'ho cambiato in questo 'datediff (" s ", # 1970/1/1 #, dateadd ("h", 5, now())) '... non sono sicuro di cosa farò quando l'ora legale scorrerà comunque. –
Quindi non c'è modo di gestire la conversione in UTC automaticamente? – R01k