Funkcja czasu w time.h daje milisekundy od epoki.Jak uzyskać milisekundy od północy UTC w C?
Odpowiedz
Używa się gettimeofday (2), który jest zdefiniowany w POSIX.1 i BSD.
Zwraca sekundy i mikrosekundę zgodnie z definicją w struct timeval z sys/time.h.
Znajdziesz tam przykłady kodów C
uzyskiwania czasu i konwertowania go do różnych formatów here.
Jest to prosty sposób:
time_t seconds_since_midnight = time(NULL) % 86400;
Aby uzyskać przybliżone milisekund od północy, należy pomnożyć przez seconds_since_midnight
1000.
Jeśli potrzebujesz więcej rozdzielczość (zastanów się, czy naprawdę), trzeba będzie użyj innej funkcji, takiej jak gettimeofday()
.
Spójrz na gmtime() przekształca się bezpośrednio do uniwersalnego czasu koordynowanego (UTC) ...
Jest to precyzyjny sposób:
struct timeval tv;
int msec = -1;
if (gettimeofday(&tv, NULL) == 0)
{
msec = ((tv.tv_sec % 86400) * 1000 + tv.tv_usec/1000);
}
To będzie przechowywać w msec
liczbę milisekund od północ. (lub -1 jeśli wystąpił błąd podczas pobierania czas.)
Mimo to zwykle zły pomysł, aby przechowywać wartości czasowe w int
, mam być trochę cavalier i zakładając int
jest co najmniej 32-bitowy i może z łatwością pomieścić zakres (-1) do 86 400 000.
Ale nie wiem, czy to jest warte wysiłku.
Wygląda na to, że coś jest nie tak z twoim kodem, według C, które znam. Może powinieneś wcześniej zadeklarować 'msec', również użyty' else'. – ThoAppelsin
@ThoAppelsin Dobry punkt. Poprawione. Dzięki! – scraimer
- 1. Jak uzyskać czas UTC "północy" dla danej strefy czasowej?
- 2. Czas w C++, milisekundy od ostatniej sekundy
- 3. Jak uzyskać milisekundy z epoki (1970-01-01) w Javie?
- 4. Jak obliczyć ms od północy w JavaScript
- 5. moment.js dostać wczoraj zakres czasowy od północy do północy
- 6. Jak uzyskać czas UTC
- 7. Jak uruchamiać codzienne uruchamianie DAG o północy czasu lokalnego zamiast o północy Czas UTC
- 8. Zdobądź sekundy od północy w pytonie
- 9. Jak uzyskać czas utc w jQuery datetimepicker
- 10. Jak uzyskać przesunięcie UTC w sekundach w Androidzie
- 11. Javascript Data od milisekundy i strefa czasowa
- 12. Jak odzyskać milisekundy z java.sql.Timestamp
- 13. Jak uzyskać min, sekundy i milisekundy z datetime.now() w python?
- 14. Jak uzyskać C# opis Enum od wartości?
- 15. Jak uzyskać czas w milisekundach od epoki unixowej w JavaScript?
- 16. szybka konwersja z czasu ciągu na milisekundy
- 17. Przesunięcie UTC w minutach
- 18. Jak mogę uzyskać obiekt NSDate na dzisiaj o północy?
- 19. Jak zdobyć uniksowy znacznik czasu w MySQL od czasu UTC?
- 20. SensorEvent.timestamp na absolute (utc) timestamp?
- 21. Jak mówić milisekundy ciszy w C# przy użyciu SpVoice?
- 22. Wyświetlane milisekundy w Excelu
- 23. Jak uzyskać ciąg znaków UTC w języku Python?
- 24. Jak uzyskać datę modyfikacji pliku w UTC z Python
- 25. Jak uzyskać dane bitowe od wartości całkowitej w C?
- 26. Jak dokładnie uzyskać aktualny czas UTC przez strtotime?
- 27. Jak uzyskać ciąg od dataPackageView.GetDataAsync()
- 28. Jak analizować ciąg znaków czasu milisekundy-od-epoki w programie Go?
- 29. Jak wyszukiwać wszystkie utworzone dzisiaj rekordy (północ UTC .. Teraz)
- 30. Jak wygenerować UTC uniksowy znacznik czasu w C#
W rzeczywistości funkcja time() podaje czas w sekundach, a nie milisekundach, od epoki (i ignoruje sekundy przestępne). –