當前位置:首頁 » 操作系統 » linux獲取毫秒

linux獲取毫秒

發布時間: 2022-06-25 05:39:17

⑴ 在linux下用C++編程,如何獲取系統當前的時間。

//方案— 優點:僅使用C標准庫;缺點:只能精確到秒級
#include <time.h>
#include <stdio.h>
int main( void )
{
time_t t = time(0);
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
puts( tmp );
return 0;
}
size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr);
根據格式字元串生成字元串。
struct tm *localtime(const time_t *timer);
取得當地時間,localtime獲取的結果由結構tm返回
返回的字元串可以依下列的格式而定:
%a 星期幾的縮寫。Eg:Tue
%A 星期幾的全名。 Eg: Tuesday
%b 月份名稱的縮寫。
%B 月份名稱的全名。
%c 本地端日期時間較佳表示字元串。
%d 用數字表示本月的第幾天 (范圍為 00 至 31)。日期
%H 用 24 小時制數字表示小時數 (范圍為 00 至 23)。
%I 用 12 小時制數字表示小時數 (范圍為 01 至 12)。
%j 以數字表示當年度的第幾天 (范圍為 001 至 366)。
%m 月份的數字 (范圍由 1 至 12)。
%M 分鍾。
%p 以 ''AM'' 或 ''PM'' 表示本地端時間。
%S 秒數。
%U 數字表示為本年度的第幾周,第一個星期由第一個周日開始。
%W 數字表示為本年度的第幾周,第一個星期由第一個周一開始。
%w 用數字表示本周的第幾天 ( 0 為周日)。
%x 不含時間的日期表示法。
%X 不含日期的時間表示法。 Eg: 15:26:30
%y 二位數字表示年份 (范圍由 00 至 99)。
%Y 完整的年份數字表示,即四位數。 Eg:2008
%Z(%z) 時區或名稱縮寫。Eg:中國標准時間
%% % 字元。

//方案二 優點:能精確到毫秒級;缺點:使用了windows API
#include <windows.h>
#include <stdio.h>
int main( void )
{
SYSTEMTIME sys;
GetLocalTime( &sys );
printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek);
return 0;
}

//方案三,優點:利用系統函數,還能修改系統時間
//此文件必須是c++文件
#include<stdlib.h>
#include<iostream>
using namespace std;
void main()
{
system("time");
}

//方案四,將當前時間折算為秒級,再通過相應的時間換算即可
//此文件必須是c++文件
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
time_t now_time;
now_time = time(NULL);
cout<<now_time;
return 0;
}

⑵ linux內核獲取時間問題

1 tv_usec是微秒,變小是因為秒進位了,你要同時把秒輸出就能看出來了
2 有個常量HZ 它和jiffies是互為倒數. 以前一直是100, 也就是1秒100下,就是1個j=10毫秒
如今也有更快的,比如1000.但是在用戶空間,一直是100.

所以jiffies非常快,會容易溢出, 例如一個無符號整形存儲秒,那麼69年左右會溢出
毫秒的話要除1000, 不到一個月就溢出了.而電腦的運行時間是完全可以達到這么久不重啟的.
jiffies_64就不用擔心這個問題了.

3可參加linux/time.h中提供的api,精確到微秒

⑶ 如何獲取linux毫秒級的當前時間

1、clock --show
Tue 29 Aug 2017 01:14:21 PM CST -0.396903 seconds
2、date
date +%Y%m%d-%H:%M:%S.%N

java怎麼在linux中精確到毫秒級

在任一單元格內輸入或復制粘貼下列公式 =TEXT(NOW(),"yyyy-m-d h:mm:ss.000") 或 在A1中輸入或復制粘貼下列公式 =NOW() 選擇A1 CTRL+1 數字 自定義 類型 輸入 yyyy-m-d h:mm:ss.000 確定 每按一下F9鍵,更新一次數值

⑸ linux中有沒有毫秒級的日歷時間結構

1 nanosleep函數可以提供最高解析度,一般是納秒級2 select、poll函數的定時是毫秒級,pselect是納秒級以上三個函數都可以實現你的要求

⑹ 32位linux下的使用gettimeofday取毫秒數返回負數問題。

timeval不是很了解,可能是你return後面計算的時候自動使用了long導致溢出
你可以試試double


return tv.tv_sec * 1000 + tv.tv_usec / 1000;

改成
double tmp;
tmp = tv.tv_sec * 1000 + tv.tv_usec / 1000;
return tmp;
當然,返回值類型也改成double

⑺ 如何設置LINUX系統的時間到毫秒級

在任一單元格內輸入或復制粘貼下列公式 =TEXT(NOW(),"yyyy-m-d h:mm:ss.000") 或 在A1中輸入或復制粘貼下列公式 =NOW() 選擇A1 CTRL+1 數字 自定義 類型 輸入 yyyy-m-d h:mm:ss.000 確定 每按一下F9鍵,更新一次數值

⑻ unix下獲取精確到毫秒的系統的時間

C語言如何獲得精確到毫秒的時間

在做測試或性能優化時,經常要知道程序運行的時間,在Linux系統可以使用time命令來計算程序運行運行所消耗的時間,能精確到毫秒,如果要精確到代碼塊或某個操作運行時所消耗的時間,time命令就不給力了。如果對時間的精度要求不高的話,可以調用標准C的介面time來得到開始和結束的時間,再調用difftime介面來計算時間差,精度是秒,代碼如下所示:

time.c
如果要讓程序休眠3秒,Windows使用Sleep(3000),Linux使用sleep(3),即Windows的Sleep介面的參數的單位是毫秒,Linux的sleep介面的參數的單位是秒。 如果需要精確到毫秒,以上程序就發揮不了作用,如果在Java要達到這要求就很簡單了,代碼如下所示:

Time.java
通過Google找了一些資料後,發現C語言里沒有標準的介面可以獲得精確到毫秒的時間,都會調用到與操作系統相關的API,下面會分別介紹在Linux和Windows系統下的多種實現方法,希望對大家有幫助。
使用gettimeofday介面:

gettimeofday.c
gettimeofday能得到微秒數,比毫秒還要更精確。
使用ftime介面:

ftime.c
使用GetTickCount介面:
下載:
GetTickCount.c
Windows系統下有些編譯器使用printf輸出64位整數參數要使用%I64d,比如VC。
使用QueryPerformanceX介面:

QueryPerformance.c
使用GetSystemTime介面:

GetSystemTime.c
這種方法沒給出計算時間差的實現,只給出如何用GetSystemTime調用得到當前時間,計算時間差比較簡單,根據年、月、日、時、分秒和毫秒計算出一個整數,再將兩整數相減即可。
以上是通過Google找到一些用C語言獲得精確到毫秒的實現方法,對比Linux和Windows的方法,發現兩個系統的API命名很不一樣,Linux介面名要麼都是小寫要麼使用下劃線(_)來分隔單詞,而Windows介面名中的單詞首字母大寫。

⑼ linux下,記錄響應時間的腳本,精確到毫秒ms

gettimeofday(取得目前的時間)
相關函數
time,ctime,ftime,settimeofday
表頭文件
#include <sys/time.h>
#include <unistd.h>
定義函數
int gettimeofday ( struct timeval * tv , struct timezone * tz )
函數說明
gettimeofday()會把目前的時間有tv所指的結構返回,當地時區的信息則放到tz所指的結構中。
timeval結構定義為:
struct timeval{
long tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
timezone 結構定義為:
struct timezone{
int tz_minuteswest; /*和Greenwich 時間差了多少分鍾*/
int tz_dsttime; /*日光節約時間的狀態*/
};
上述兩個結構都定義在/usr/include/sys/time.h。tz_dsttime 所代表的狀態如下
DST_NONE /*不使用*/
DST_USA /*美國*/
DST_AUST /*澳洲*/
DST_WET /*西歐*/
DST_MET /*中歐*/
DST_EET /*東歐*/
DST_CAN /*加拿大*/
DST_GB /*大不列顛*/
DST_RUM /*羅馬尼亞*/
DST_TUR /*土耳其*/
DST_AUSTALT /*澳洲(1986年以後)*/
返回值
成功則返回0,失敗返回-1,錯誤代碼存於errno。附加說明EFAULT指針tv和tz所指的內存空間超出存取許可權。
範例
#include<sys/time.h>
#include<unistd.h>
main(){
struct timeval tv;
struct timezone tz;
gettimeofday (&tv , &tz);
printf(「tv_sec; %d\n」, tv,.tv_sec) ;
printf(「tv_usec; %d\n」,tv.tv_usec);
printf(「tz_minuteswest; %d\n」, tz.tz_minuteswest);
printf(「tz_dsttime, %d\n」,tz.tz_dsttime);
}
執行
tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0

⑽ 求linux毫秒級定時器的實現

自己用多線程實現唄,如果不要求精確控制的話,只需要讓新開的線程循環,每次循環sleep 300毫秒,然後觸發主線程的處理

熱點內容
存儲冗餘比 發布:2024-05-04 00:12:58 瀏覽:402
oracle資料庫存儲原理 發布:2024-05-04 00:10:40 瀏覽:521
未拆封玩客雲3怎麼搭建伺服器 發布:2024-05-04 00:06:11 瀏覽:796
徹底刪除編譯安裝的文件 發布:2024-05-04 00:05:33 瀏覽:55
編程機構數量 發布:2024-05-03 23:49:25 瀏覽:955
python源碼編譯安裝 發布:2024-05-03 23:48:16 瀏覽:108
android手機市場 發布:2024-05-03 23:47:04 瀏覽:499
如何配置vlan並添加埠 發布:2024-05-03 23:37:53 瀏覽:726
中國電信無線密碼怎麼修改 發布:2024-05-03 23:37:51 瀏覽:117
源腳本修改器 發布:2024-05-03 23:36:26 瀏覽:194