Łączę się do substancji czynnych i jeden z parametrów jest długa (13 cyfr) zachować bieżącą timestamp
w VB.NET, który reprezentuje milisekund przeszły od 0:00:00 01.01.1970 in GMT
aż aktualny czas.Jak uzyskać prąd timestamp
format powinny być jak ten 1290932238757
Próbowałem to Syntex:
DirectCast((Datetime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds, Int64)
Ale wyjście było:
01/12/2013 02:06:24
działa bardzo dobrze, dziękuję bardzo. – Dan
Nie mogę zrozumieć, jak to działa: Myślę, że powinno to być CLng (DateTime.UtcNow.Subtract (New DateTime (1970, 1, 1)) ToUniversalTime.TotalMilliseconds). W każdym razie ta metoda nie zwraca poprawnego znacznika czasu. Przy wywołaniu @keyboardP zwraca poprawny znacznik czasu, ale jak to jest możliwe, ponieważ porównuje UtcNow i 1/1/1970 (co jest znane z strefy czasowej)? – Desmond
W końcu zrozumiałem. "Nowa data (1,1,1970)" tworzy datę, której strefa czasowa nie jest znana. Metoda .ToUniversalTime przesuwa ją tak, jakby była w localTime. Najlepszym rozwiązaniem powinno być utworzenie strefy czasowej uwzględniającej datę: 'New DateTime (1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)' – Desmond