Sto cercando come formattare il tempo compresi i microsecondi. Sto usando la classe DateTime, consente (usando le proprietà) di ottenere dati fino a millisecondi, che non è enougth. Ho provato a usare Ticks, ma non sapevo come tradurlo in microsecondi.C# in microsecondi
risposta
È possibile utilizzare "ffffff"
in una stringa di formato per rappresentare microsecondi:
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss.ffffff"));
per convertire un numero di zecche a microsecondi, basta usare:
long microseconds = ticks/(TimeSpan.TicksPerMillisecond/1000);
Se questi non aiutano, Si prega di fornire maggiori informazioni su esattamente quello che stai cercando di fare.
EDIT: ho inizialmente moltiplicato ticks
per 1000 per evitare di perdere precisione quando si divide TimeSpan.TicksPerMillisecond
per 1000. Tuttavia, si scopre che la TicksPerMillisecond
è in realtà un valore costante di 10.000 - in modo da poter dividere per 1000 senza alcun problema, e in Infatti potremmo semplicemente usare:
const long TicksPerMicrosecond = 10;
...
long microseconds = ticks/TicksPerMicrosecond;
Ho usato entrambi gli opy il problema è che ottengo sempre i microsecondi zero. Sembra che non possa ottenere la risoluzione di quello. –
Quindi questo non è un problema di formattazione, è un problema di risoluzione. Da dove prendi i dati per iniziare? Se stai cercando di calcolare quanto tempo impiega qualcosa, dovresti usare la classe 'Cronometro'. –
No. Ne ho solo bisogno per il logger. Per ogni evento nel sistema, inserisco all'inizio l'ora in cui è successo. Qualche suggerimento? –
"ffffff" è quello che ti serve.
return DateTime.Now.ToString("HH:mm:ss.ffffff");
L'ho usato il problema è che stampa sempre zero al microsecondo, come se non lo calcolasse. –
Questo non è un problema con la formattazione, questo è un problema con l'accuratezza DateTime.Ora. Prova a utilizzare System.Diagnostics.Stopwatch. –
Ho provato un'altra finestra (la mia è vista) e la risoluzione dei microsecondi –
Non sono riuscito a far virare Johns alla conversione del micorosecondo per funzionare. Ecco come sono stato in grado di misurare microsecondi e la risoluzione Nanosecondo utilizzando zecche e il cronometro:
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 è buona. Quindi dividere per 1000 per ottenere microsecondi. – rocketsarefast
Questo non è giusto, perché (Cronometro.Frequenza/(1000L * 1000L)) è un valore lungo lascia tutto dopo un decimale per esempio se il risultato dell'equazione nella riga sopra (del mio commento) è 2.8576 che è tecnicamente 3 ma sw.ElapsedTicks sarà diviso per 2 non 2.8 o 3, che è completamente sbagliato. – user2913184
- 1. MySQL 5.6 DATETIME non accetta millisecondi/microsecondi
- 2. log4j ConversionPattern timestamp con i microsecondi
- 3. Abilitazione dei microsecondi in Symfony2 (Doctrine) e MySQL
- 4. convertire i microsecondi in un tempo leggibile dall'uomo
- 5. Ricezione pacchetti socket RAW con precisione in microsecondi
- 6. pitone datetime: numero rotondo/assetto di cifre in microsecondi
- 7. Cassandra cqlsh - come mostrare microsecondi/millisecondi per le colonne timestamp?
- 8. Come recuperare i microsecondi o millisecondi dall'ora attuale MySQL?
- 9. Python: La conversione di stringa per data con microsecondi
- 10. Ritardo in C#
- 11. Un arduino può campionare l'audio in microsecondi per 1-4 kHz?
- 12. come ottenere un orologio in tempo reale in C#?
- 13. profiler al microsecondo per il codice C
- 14. Calcolo del tempo di funzionamento in nanosecondi nel codice C
- 15. (nil) in C/C++
- 16. main() in C, C++, Java, C#
- 17. C/C++/C# Forza finestra in cima
- 18. stringa C maiuscolo in C e C++
- 19. Catch Ctrl-C in C
- 20. #include intestazioni in C/C++
- 21. come convertire C# in C++
- 22. (c = getchar())! = EOF in C#?
- 23. Debug C++ dll in C#
- 24. Convert C++ struct in C#
- 25. C++ CString equivalente in C#
- 26. C++ implementato in chiaro C
- 27. Programmazione funzionale in C/C++?
- 28. librerie quaternion in C/C++
- 29. utilizzo #define in C/C++
- 30. virgola in C/C++ macro
stare attenti con DateTime.Now, non è preciso al microsecondo. Prova System.Diagnostics.Stopwatch per afferrare il tempo. Assicurati anche di avere un orologio di sistema ad alta risoluzione. –
Sì, hai ragione. Mi ci è voluto tempo per capire questo commento. Sebbene Presenta il tempo in microsceonds, il tempo non è in microsecondi. –