Zastanawiałem się, czy istnieje sposób na utworzenie znacznika czasu w języku c # z datetime? Potrzebuję wartości precyzji milisekundy, która działa również w Compact Framework (mówiąc, że ponieważ DateTime.ToBinary () nie istnieje w CF).
Mój problem polega na tym, że chcę przechowywać tę wartość w sposób agnostyczny bazy danych, aby móc ją później sortować i dowiedzieć się, która wartość jest większa od innej itp.
c#
timestamp
compact-framework
database-agnostic
time-precision
Konstantinos
źródło
źródło
Odpowiedzi:
Zawsze używam czegoś takiego:
To da ci ciąg taki jak 200905211035131468, ponieważ ciąg przechodzi od bitów najwyższego rzędu znacznika czasu do najniższego rzędu prostego sortowania ciągów w zapytaniach SQL może być używane do sortowania według daty, jeśli przechowujesz wartości w bazie danych
źródło
Uważam, że możesz utworzyć sygnaturę daty w stylu uniksowym z dokładnością do sekundy, korzystając z następującego
Dostosowanie mianownika pozwala wybrać poziom precyzji
źródło
Możesz użyć właściwości DateTime.Ticks, która jest długa i uniwersalna, którą można przechowywać, zawsze rośnie i jest używana również w zwartej strukturze. Tylko upewnij się, że Twój kod nie jest używany po 31 grudnia 9999;)
źródło
Możesz także użyć
Stopwatch.GetTimestamp (). ToString ();
źródło
kiedy potrzebujesz znacznika czasu w sekundach, możesz użyć:
źródło
Jeśli chcesz, aby znaczniki czasu odpowiadały rzeczywistym czasom, ALE aby były również unikalne (dla danej instancji aplikacji), możesz użyć następującego kodu:
źródło