I время различные транзакции в моем приложении Java. В начале транзакции я получаю время начала, создавая календарь, а затем получаю час, минуту, секунду и миллисекунду. Я завершаю транзакцию, создаю новый календарь и получаю новый час, минуту, секунду и миллисекунду. Мое рассуждение состоит в том, что разница между временем начала и временем окончания - это время транзакции. Это, похоже, работает большую часть времени, но крошечная часть времени, время окончания - раньше, чем время начала. Почему это происходит и как я могу это предотвратить?миллисекунды времени в java
ответ
Ну, на первый взгляд, проще всего вычислить разницу было бы использовать что-то вроде System.currentTimeMillis()
или System.nanoTime()
- таким образом вам не нужно ничего делать, кроме простого вычитания, чтобы получить количество миллисекунд или количество наносекунд между началом и концом.
Однако, если ваши системные часы обновляются с помощью NTP или что-то подобное, время может эффективно отходить назад иногда - в зависимости от того, как обрабатывается перекос часов. (Некоторые системы просто замедляют системные часы на некоторое время, чтобы перекосить их обратно в реальность, другие могут иметь разрывы.)
Я не уверен в лучшем способе избежать этого - я не знаю считаю JRE в настоящее время имеет что-то эквивалентное Stopwatch
в .NET, которое предназначено исключительно для измерения интервалов и не (как я полагаю) перепуталось с изменением системных часов.
(я иду вместе с рекомендацией Erick о Joda Time, кстати. - хотя я не думаю, что вам это нужно для этой конкретной проблемы)
Это отличный ответ. –
По моему опыту, время гораздо точнее в linux, чем в окнах. System.currentTimeInMilis имеет тенденцию проскальзывать вперед в больших кусках на окнах ... Не уверен, что это будет иметь значение, но это может быть – bwawok
IIUC, System.nanoTime не зависит от изменений на стене (например, NTP и т. Д.). nanoTime предназначен для единственной цели измерения прошедшего времени. –
- 1. Преобразования микросекунды времени миллисекунды Времени
- 2. Преобразование времени в миллисекунды?
- 3. SAS Формат времени: миллисекунды
- 4. размер времени и миллисекунды
- 5. Преобразование заданного времени в миллисекунды
- 6. конвертирует миллисекунды в строку времени
- 7. Преобразование времени строки в миллисекунды
- 8. Преобразование строки времени в миллисекунды
- 9. Java Миллисекунды в году
- 10. миллисекунды до настоящего времени в GMT в Java
- 11. Преобразование миллисекунды метки времени назад меток времени
- 12. Windows миллисекунды времени - без оживленной?
- 13. Миллисекунды до отметки времени UNIX
- 14. SQL-метка времени до миллисекунды
- 15. Удаление миллисекунды из метки времени
- 16. golang: конвертировать миллисекунды во времени
- 17. Как найти миллисекунды определенного времени?
- 18. Получить миллисекунды для времени суток
- 19. В WindowsPhone преобразования текущего времени в миллисекунды
- 20. Локальное форматирование времени и даты, включая миллисекунды
- 21. Как раунд миллисекунды в java?
- 22. конвертировать миллисекунды во времени в R
- 23. Преобразование времени секундомера в миллисекунды (регулярное выражение)
- 24. Преобразование времени в миллисекунды с помощью SimpleDateFormat
- 25. Преобразование миллисекунды в читаемом промежутка времени
- 26. Python регистрации: использование миллисекунды в формате времени
- 27. Преобразование отформатированной строки времени в миллисекунды
- 28. метка времени миллисекунды различие в действии Dao
- 29. быстрое преобразование из строкового времени в миллисекунды
- 30. Haskell Преобразование времени миллисекунды в UTCTime
Что делает код выглядеть, где вы создаете даты, и звоните метод транзакции? –
Если вы также указали код, который вы написали для этого, тогда это будет легко сказать что-то ... – Rupeshit