Sự tương đương của số System.currentTimeMillis()
của Java trong C là gì?Nhận thời gian hiện tại, tính bằng mili giây, tính bằng C?
Trả lời
Xem chủ đề này: http://cboard.cprogramming.com/c-programming/51247-current-system-time-milliseconds.html
Nó nói rằng thời gian() chức năng là chính xác đến giây và độ chính xác sâu hơn đòi hỏi các thư viện khác ...
Kiểm tra time.h
, có lẽ giống như gettimeofday()
chức năng.
Bạn có thể làm một cái gì đó giống như
struct timeval now;
gettimeofday(&now, NULL);
Sau đó, bạn có thể trích xuất thời gian bằng cách nhận các giá trị từ now.tv_sec
và now.tv_usec
.
không
Có chức năng time() nhưng trả về giây, không phải là mili giây. Nếu bạn cần độ chính xác cao hơn, bạn có thể sử dụng các chức năng nền tảng cụ thể như Windows GetSystemTimeAsFileTime() hoặc * nix's gettimeofday().
Nếu bạn không thực sự quan tâm về ngày và thời gian nhưng chỉ muốn thời gian khoảng cách giữa hai sự kiện, như thế này:
long time1 = System.currentTimeMillis();
// ... do something that takes a while ...
long time2 = System.currentTimeMillis();
long elapsedMS = time2 - time1;
thì C tương đương là clock(). Trên Windows, việc sử dụng GetTickCount() là phổ biến hơn cho mục đích này.
Trên Linux và các hệ thống giống Unix khác, bạn nên sử dụng clock_gettime(CLOCK_MONOTONIC). Nếu tính năng này không khả dụng (ví dụ: Linux 2.4), bạn có thể quay lại gettimeofday(). Sau này có nhược điểm bị ảnh hưởng bởi điều chỉnh đồng hồ.
Trên Windows, bạn có thể sử dụng QueryPerformanceCounter().
This code của tôi tóm tắt tất cả những điều trên thành một giao diện đơn giản trả về số mili giây dưới dạng int64_t. Lưu ý rằng giá trị mili giây được trả lại chỉ dành cho việc sử dụng tương đối (ví dụ: thời gian chờ) và không liên quan đến bất kỳ thời điểm cụ thể nào.
'CLOCK_MONOTONIC' không hoàn toàn tương đương với hàm java, vì hàm java cũng bị ảnh hưởng bởi các điều chỉnh xung quanh. Đó là sự lựa chọn đúng cho bộ định thời gian, tất nhiên, nhưng nếu OP muốn một thời gian wallclock nó sẽ không giúp đỡ. – bdonlan
- 1. Cách nhận thời gian hiện tại tính bằng mili giây từ C trong Linux?
- 2. Tính toán chênh lệch thời gian tính bằng mili giây
- 3. Nhận thời gian hiện tại (tính bằng mili giây) từ đồng hồ hệ thống trong Windows?
- 4. nhận thời gian hiện tại tính bằng giây
- 5. C# thời gian tính bằng micro giây
- 6. CURRENT_TIMESTAMP tính bằng mili giây
- 7. Thời gian hệ thống chrono C++ tính bằng mili giây, hoạt động thời gian
- 8. Lịch Java nhận ngày hiện tại, không có giờ, phút, giây và mili giây, tính bằng mili giây
- 9. Dấu thời gian hiện tại SQLite bằng mili giây?
- 10. Cách nhận chênh lệch thời gian bằng mili giây
- 11. Cách nhận thời gian bằng mili giây trong Android Shell?
- 12. Nhận thời gian tính bằng mili giây mà không cần cài đặt thêm gói?
- 13. Làm cách nào để có thời gian trôi qua trong C tính bằng mili giây? (Windows)
- 14. Nhận thời gian bằng mili giây bằng cách sử dụng C#
- 15. Nhận thời gian hiện tại tính bằng giây từ Epoch trên Linux, Bash
- 16. C# sub mili giây thời gian
- 17. new Date(). GetTime() không trả về dấu thời gian tính bằng mili giây
- 18. NSTimer Giảm thời gian bằng giây/mili giây
- 19. Tìm thời gian bằng mili giây bằng Powershell?
- 20. Làm thế nào để nhận được thời gian tính bằng mili giây kể từ thời kỳ unix trong Javascript?
- 21. Nhận thời gian POSIX/Unix tính bằng giây và nano giây bằng Python?
- 22. Đo tốc độ mã bằng .net tính bằng mili giây
- 23. Làm thế nào để có được thời gian hiện tại trong mili giây trong C Programming
- 24. Làm thế nào để thời gian một hàm tính bằng mili giây mà không tăng :: timer
- 25. Android Nhận ngày hiện tại (với thời gian là 0: 00: 000) trong mili giây?
- 26. /usr/bin/time - xuất ra định dạng thời gian trôi qua tính bằng mili giây
- 27. thời gian trăn (milli giây) tính
- 28. C++ chrono duration_cast đến mili giây cho kết quả tính bằng giây
- 29. Tính thời gian chức năng tính bằng nano giây trong mã C
- 30. Tính toán thời gian bằng mã C++
Hệ điều hành nào? –
Xem http://stackoverflow.com/questions/5303751/current-microsecond-time-in-c. Câu trả lời tốt ở đó. – netcoder
Có thể trùng lặp của [Cách đo thời gian bằng mili giây bằng ANSI C?] (Http://stackoverflow.com/questions/361363/how-to-measure-time-in-milliseconds-using-ansi-c) –