Die Zeitfunktion in time.h gibt Millisekunden seit der Epoche.Wie bekomme ich Millisekunden seit Mitternacht UTC in C?
Antwort
Sie verwenden gettimeofday (2), die in POSIX.1 und BSD definiert ist.
Es gibt Sekunden und Mikrosekunden zurück, wie in struct timeval von sys/time.h definiert.
Sie finden C
Codebeispiele, um Zeit zu gewinnen und in verschiedene Formate zu konvertieren here.
Dies ist eine einfache Art und Weise:
time_t seconds_since_midnight = time(NULL) % 86400;
Um seit Mitternacht ungefähre Millisekunden zu erhalten, multiplizieren seconds_since_midnight
von 1000.
Wenn Sie mehr Auflösung benötigen (überlegen, ob Sie wirklich tun), müssen Sie Verwenden Sie eine andere Funktion wie gettimeofday()
.
Werfen Sie einen Blick auf gmtime() Wandelt direkt in Coordinated Universal Time (UTC) ...
Dies ist die genaue Art und Weise:
struct timeval tv;
int msec = -1;
if (gettimeofday(&tv, NULL) == 0)
{
msec = ((tv.tv_sec % 86400) * 1000 + tv.tv_usec/1000);
}
, die in msec
die Anzahl der Millisekunden speichern wird seit Mitternacht. (oder -1, wenn ein Fehler war, die Zeit zu bekommen.)
Obwohl es in der Regel eine schlechte Idee ist Zeit-Werte in einem int
zu speichern, ich bin ein wenig Kavalier zu sein und int
vorausgesetzt, mindestens 32-bit und kann leicht den Bereich (-1) bis 86.400.000 aufnehmen.
Aber ich weiß nicht, ob es die Mühe wert ist.
Es scheint etwas mit Ihrem Code falsch zu sein, entsprechend dem C, das ich kenne. Vielleicht hättest du vorher 'msec' deklarieren sollen, auch 'else'. – ThoAppelsin
@ThoAppelsin Guter Punkt. Korrigiert. Vielen Dank! – scraimer
- 1. Gesamt Sekunden seit Mitternacht, Java
- 2. Wie bekomme ich den aktuellen Zeitstempel in C++ seit 1970?
- 3. UTC-Datum in Millisekunden umwandeln
- 4. Mitternacht in UTC-Zeitzone mit Unix-Zeitstempel
- 5. Wie bekomme ich die UTC-Zeit von "Mitternacht" für eine bestimmte Zeitzone?
- 6. Wie bekomme ich den Zeitunterschied in Millisekunden
- 7. graphit: Anzeige Summe der Daten seit Mitternacht
- 8. Wie bekomme ich UTCTime in Millisekunde seit dem 1. Januar 1970 in c Sprache
- 9. Wie konvertiert man Datum in UTC Mitternacht mit PHP
- 10. Wie bekomme ich die UTC-Zeit
- 11. Wie bekomme ich die UTC-Zeit in Python?
- 12. Java.util.Calendar - Millisekunden seit dem 1. Januar 1970
- 13. Wie bekomme ich weniger Stellen Millisekunden
- 14. Wie bekomme ich das Datum von Millisekunden
- 15. Scala UTC Zeitstempel in Sekunden seit dem 1. Januar 1970
- 16. JodaTime Aktuelle Millisekunden seit Beginn des Tages
- 17. Wie bekomme ich die aktuelle Datumzeit in Millisekunden in Android
- 18. Wie bekomme ich aktuelle Spielzeit, CMTime in Millisekunden in AVPlayer?
- 19. Überprüfen, ob eine Ansicht seit Mitternacht geladen wurde
- 20. Wie bekomme ich Daten zwischen heute Mitternacht und JETZT?
- 21. Wie bekomme ich Millisekunden von der Epoche (1970-01-01) in Java?
- 22. iOS bekomme UTC Timestamp
- 23. Wie bekomme ich Sekunden seit der Epoche (1.1.1970) in VBA?
- 24. wie bekomme ich Datum Zeit einschließlich Millisekunden in VBA
- 25. Wie bekomme ich Unix-Zeitstempel in MySQL von UTC-Zeit?
- 26. Datum in Millisekunden seit Epoche mit Apache Derby konvertieren
- 27. Javascript - wo bekomme ich UTC Zeitzone Datenbank
- 28. Wie bekomme ich die aktuelle Zeit in Millisekunden von C in Linux?
- 29. SensorEvent.timestamp in absoluten (utc) timestamp?
- 30. Wie bekomme ich die aktuelle UTC 0 Zeit mit D?
Tatsächlich gibt die time() -Funktion die Zeit in Sekunden, nicht Millisekunden seit der Epoche (und es ignoriert Schaltsekunden). –