Szukam sposobu formatowania czasu, w tym mikrosekund. Używam klasy DateTime, która pozwala (używając właściwości), aby uzyskać dane do milisekund, co nie jest wystarczające. Próbowałem używać kleszczy, ale nie wiedziałem, jak to przetłumaczyć na mikrosekundy.C# czas w mikrosekundach
Odpowiedz
Można użyć "ffffff"
w ciągu formatu do reprezentowania mikrosekund:
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss.ffffff"));
Aby przekonwertować liczbę kleszczy do mikrosekund, wystarczy użyć:
long microseconds = ticks/(TimeSpan.TicksPerMillisecond/1000);
Jeśli to nie pomoże, proszę podać więcej informacji o tym, co dokładnie próbujesz zrobić.
EDIT: I początkowo pomnożona ticks
przez 1000, aby uniknąć utraty dokładności przy podziale TimeSpan.TicksPerMillisecond
przez 1000. Tymczasem okazuje się, że TicksPerMillisecond
jest rzeczywiście stała wartość 10000 - tak można podzielić przez 1000 bez problemu, aw Fakt, że możemy po prostu użyć:
const long TicksPerMicrosecond = 10;
...
long microseconds = ticks/TicksPerMicrosecond;
Użyłem obu opcji, problem polega na tym, że otrzymuję mikrosekundy zawsze zerowe. Wygląda na to, że nie uda się tego rozwiązać. –
To nie jest problem z formatowaniem, to problem z rozdzielczością. Skąd czerpiesz dane od początku? Jeśli próbujesz oszacować czas potrzebny na coś, powinieneś użyć klasy 'Stopwatch'. –
Nie. Potrzebuję go tylko do rejestratora. Dla każdego zdarzenia w systemie wpisuję na początku czas, w którym to się stało. Jakieś suggetsions? –
"ffffff" jest tym, czego potrzebujesz.
return DateTime.Now.ToString("HH:mm:ss.ffffff");
Ja użyłem tego problemu, ponieważ zawsze drukuje zero w mikrosekundach, tak jak go nie oblicza. –
To nie jest problem z formatowaniem, to jest problem z DateTime.Now dokładność. Spróbuj użyć System.Diagnostics.Stopwatch. –
Wypróbowałem to inne okno (moje jest widok perspektywiczny) i jego rozdzielczość f mikrosekundy –
Nie udało mi się przekonać Johnsa do mikroprocesorowej konwersji do pracy. Oto w jaki sposób udało mi się zmierzyć mikrosekundy nanosekundy i rozdzielczości za pomocą kleszczy i stoper:
Stopwatch sw = new Stopwatch();
sw.Start();
// Do something you want to time
sw.Stop();
long microseconds = sw.ElapsedTicks/(Stopwatch.Frequency/(1000L*1000L));
long nanoseconds = sw.ElapsedTicks/(Stopwatch.Frequency/(1000L*1000L*1000L));
Console.WriteLine("Operation completed in: " + microseconds + " (us)");
Console.WriteLine("Operation completed in: " + nanoseconds + " (ns)");
sw.Elapsed.TotalMilliseconds jest ładne. Następnie podziel przez 1000, aby uzyskać mikrosekundy. – rocketsarefast
To nie jest w porządku, ponieważ (Stopwatch.Frequency/(1000L * 1000L)) jest długością pozostawia wszystko po przecinku, na przykład, jeśli wynik równania w powyższej linii (mojego komentarza) wynosi 2,8576, co jest technicznie 3, ale sw.ElapsedTicks zostaną podzielone przez 2, a nie 2.8 lub 3, co jest całkowicie błędne. – user2913184
- 1. Zmierz czas wykonywania w C#
- 2. Pobierz aktualny czas w C
- 3. C Wykaz czas # Podział na czas waha
- 4. Ustaw czas maszyny C#
- 5. C Czas oddzwonienia
- 6. Wpisz "Czas" w SQL Server i C#
- 7. Jak mogę uzyskać aktualny czas w C#?
- 8. Jak uzyskać czas epoki w C#?
- 9. Jak mogę zmierzyć czas wątku w C#?
- 10. Jak wydrukować bieżący czas w C++ 11?
- 11. Czas w C++, milisekundy od ostatniej sekundy
- 12. Jak zmienić czas utworzenia pliku w C#?
- 13. C# - Czas między dwoma DateTimes w minutach
- 14. Uzyskaj czas w milisekundach, używając C#
- 15. Gwarantowany czas życia tymczasowy w C++?
- 16. Jak przekonwertować czas i czas unixu na czas letni w C#?
- 17. C jak poprawnie mierzyć czas?
- 18. Czas życia zmiennej tymczasowej C++
- 19. komenda linux czas mikrosekundy lub lepsza dokładność
- 20. Objective-c - czas logowania i wylogowania użytkownika
- 21. C# .NET 2 Threading.Timer - czas dryfujący
- 22. Dostosuj czas letni do czasu lokalnego C++
- 23. Jak wyświetlać czas w formacie 12-godzinnym w Objective-C?
- 24. Jak uzyskać czas, który upłynął w C w milisekundach? (Windows)
- 25. C++: czas życia obiektu i funkcji zewnętrznych
- 26. C# czas formatowania "On The Hour"
- 27. Dodaj czas trwania do C++ punkcie czasowym
- 28. C# Czas funkcji za pomocą atrybutu
- 29. C# Rozmiar kodu i czas wykonania kodu
- 30. Czy można próbkować dźwięku Arduino w mikrosekundach dla 1-4 kHz?
być ostrożnym z DateTime.Now, że nie jest z dokładnością do mikrosekund. Wypróbuj System.Diagnostics.Stopwatch, aby pobrać czas. Upewnij się też, że masz zegar systemowy o wysokiej rozdzielczości. –
Tak, masz rację. Zajęło mi trochę czasu, aby zrozumieć ten komentarz. Chociaż przedstawia czas w mikroscedzie, czas nie jest w mikrosekundach. –