Có cách nào để nhận mili giây và phần thập phân của nó từ năm 1970 bằng ngôn ngữ c không?Làm thế nào tôi có thể nhận được UTCTime trong mili giây kể từ ngày 1 tháng 1 năm 1970 bằng ngôn ngữ c
Trả lời
này hoạt động trên Ubuntu Linux:
struct timeval tv;
gettimeofday(&tv, NULL);
unsigned long long millisecondsSinceEpoch =
(unsigned long long)(tv.tv_sec) * 1000 +
(unsigned long long)(tv.tv_usec)/1000;
printf("%llu\n", millisecondsSinceEpoch);
Tại thời điểm viết bài này, printf() trên được đem lại cho tôi 1338850197035. Bạn có thể làm một kiểm tra sự tỉnh táo tại trang web TimestampConvert.com nơi bạn có thể nhập giá trị để lấy lại thời gian tương đương với con người có thể đọc được (mặc dù không có độ chính xác mili giây).
Unix time or Posix time là thời gian trong giây từ kỷ nguyên bạn đã đề cập.
bzabhi Câu trả lời là chính xác: bạn chỉ cần nhân dấu thời gian Unix lên 1000 để nhận được mili giây.
Lưu ý rằng tất cả các giá trị mili giây được trả về bằng cách dựa vào dấu thời gian Unix sẽ là bội số của 1000 (như 12345678000). Độ phân giải vẫn chỉ còn 1 giây.
Bạn không thể nhận được phần phần
Các bình luận từ Pavel là đúng cũng có. Dấu thời gian Unix không tính đến giây nhảy vọt. Điều này làm cho nó thậm chí còn ít khôn ngoan hơn để dựa vào một chuyển đổi đến mili giây.
Bất kỳ thư viện nào khác có thể nhận được milisecond chính xác bao gồm cả phần phân số của nó ????? – Siddiqui
Dấu thời gian Unix là về cơ bản như chúng ta có thể đi. Nó phải được rằng các nhà thiết kế của Unix nghĩ rằng một độ phân giải thứ hai là đủ. Sau đó, một lần nữa các chi phí của việc duy trì một độ phân giải 1ms có lẽ ngoài các hệ thống Unix sớm. – pavium
Đối với Unix và Linux, bạn có thể sử dụng gettimeofday.
Đối với Win32, bạn có thể sử dụng GetSystemTimeAsFileTime và sau đó convert it to time_t + milliseconds.
gettimeofday() thực hiện những gì cần thiết. Dưới đây là ví dụ về mã: http://www.docs.hp.com/en/B9106-90009/gettimeofday.2.html Vì vậy, những hệ điều hành nào mà Aman đang cố gắng hỗ trợ? – tpgould
Nó không phải là tiêu chuẩn C, nhưng gettimeofday()
có mặt trong cả hai hệ thống dẫn xuất SysV và BSD và nằm trong POSIX. Nó trả về thời gian kể từ khi kỷ nguyên trong một struct timeval
:
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};
Nếu bạn muốn giải quyết một phần nghìn giây, bạn có thể sử dụng gettimeofday() trong Posix. Để thực hiện Windows, hãy xem gettimeofday function for windows.
#include <sys/time.h>
...
struct timeval tp;
gettimeofday(&tp);
long int ms = tp.tv_sec * 1000 + tp.tv_usec/1000;
// the system time
SYSTEMTIME systemTime;
GetSystemTime(&systemTime);
// the current file time
FILETIME fileTime;
SystemTimeToFileTime(&systemTime, &fileTime);
// filetime in 100 nanosecond resolution
ULONGLONG fileTimeNano100;
fileTimeNano100 = (((ULONGLONG) fileTime.dwHighDateTime) << 32) + fileTime.dwLowDateTime;
//to milliseconds and unix windows epoche offset removed
ULONGLONG posixTime = fileTimeNano100/10000 - 11644473600000;
return posixTime;
- 1. Dấu thời gian Scala UTC trong vài giây kể từ ngày 1 tháng 1 năm 1970
- 2. Tại sao ngày được tính từ ngày 1 tháng 1 năm 1970?
- 3. Làm thế nào để có được giây kể từ thời đại (1/1/1970) trong VBA?
- 4. Chuyển đổi ví dụ: 2012-05-25 đến giây kể từ ngày 1 tháng 1 năm 1970
- 5. tìm số giây trước đây kể từ 1/1/1970
- 6. Số giây từ ngày 1 tháng 1 năm 1900 để bắt đầu phiên bản Unix
- 7. DatePickerDialog thực thi không đúng ngày tối thiểu là ngày 1 tháng 1 năm 1970
- 8. ngày tháng trước năm 1970
- 9. Tại sao strtotime (ngày 1 tháng 1 năm 1970) trả về -3600 thay vì 0 trong PHP?
- 10. cách lấy số giây được chuyển từ năm 1970 cho một giá trị ngày tháng?
- 11. php nhận ngày -1 tháng
- 12. 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?
- 13. Cách nhận năm và tháng kể từ ngày - PHP
- 14. Làm cách nào để nhận được mili giây kể từ nửa đêm UTC trong C?
- 15. Cách trích xuất năm, tháng, ngày, giờ, phút, giây kể từ ngày mysql?
- 16. Tôi làm cách nào để có được ngày sau 15 ngày/1 tháng bằng PHP?
- 17. Java Mili giây trong năm
- 18. lưu trữ ngày và ngày hiện tại 1 năm kể từ hiện tại trong java
- 19. Ngày trừ 1 năm?
- 20. 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
- 21. chuyển đổi ngày tháng thành mili giây bằng javascript
- 22. MySQL chọn ngày được định dạng từ trường mili giây
- 23. Làm cách nào để thêm chính xác 1 mili giây?
- 24. utc giây kể từ nửa đêm đến ngày giờ
- 25. bằng Python, Làm thế nào tôi có thể chuyển đổi một chuỗi thành một đối tượng ngày tháng và nhận được năm, tháng và ngày riêng biệt?
- 26. Làm cách nào để nhận được số ngày trong tháng cho tháng và năm cụ thể?
- 27. Cần một công thức: Extracting năm từ Giây Kể từ ngày 01 tháng một, 0001 12:00
- 28. Cách tính ngày sau 1 tháng currentDate
- 29. tính FPS trong Javascript dưới 1 mili giây
- 30. Android: Samsung Galaxy Tabs và Android 2.2 Devices Hiển thị ngày GPS 1 ngày Advance từ ngày 1 tháng 1 năm 2012
Bạn không thể lấy phần phân đoạn theo cách độc lập trên nền tảng. Bạn đang tập trung vào nền tảng nào? – dalle
Tôi tuân theo tiêu chuẩn ANSI C, vì vậy ứng dụng của tôi sẽ là nền tảng độc lập. Hiện tại tôi đang ở trên nền tảng cửa sổ. – Siddiqui