本文主要使用time() 及strftime() 函式實現c++獲取系統時間。
c++系統和時間相關的函式基本上都是使用c語言提供的標準介面
在程式中獲取系統時間是常見的操作,很多情況下使用系統提供的time函式即可獲取。
time() 是系統c語言的標準介面,通過man time 或者man 2 time 可檢視詳細的使用方法。
include
include
int main()
將檔案儲存為timetest.cpp,在lpxqivclxkginux下使用g++命令編譯:
g++timetest.cpp
成功會生成a.out,執行命令即可看到輸出:
./a.out
這是最常用的方法,當然另外還有其它函式可使用,可參考以下函式,這裡不在詳述。
date(1),gettimeofday(2), ctime(3), ftime(3), time(7)
時間字串處理
用上面的time函式獲取時間後返回的是tm 的結構體,通常我們需要轉換為字串的方式使用。
這時strftime可派上用場,這個函式www.cppcns.com常用來格式化時間和日期。
#include
#include
#include
intmain(int argc, char
ar**)
if (strftime(outstr, sizeof(outstr), ar**[1], tmp) == 0)
printf("result string is "%s"\n", outstr);
exit(exit_success);
} /* main */
使用方法同上編譯,執行時出入時間格式:
$ ./a.out '%m'
result string is "11"
$./a.out '%5m'
result string is "00011"
$./a.out '%_5m'
result string is " 11"
strftime支援多種日期時間格式,詳細如下,需要注意大小寫哦:
%a 星期幾的簡寫
%a 星期幾的全稱
%b 月分的簡寫
%b 月份的全稱
%c 標準的日期的時間串
%c 年份的後兩位數字
%d 十進位制表示的每月的第幾天
%d 月/天/年
%e 在兩字元域中,十進位制表示的每月的第幾天
%f 年-月-日
%g 年份的後兩位數字,使用基於周的年
%g 年分,使用基於周的年
%h 簡寫的月份名
%h 24小時制的小時
%i 12小時制的小時
%j 十進位制表示的每年的第幾天
%m 十進位制表示的月份
%m 十時制表示的分鐘數
%n 新行符
%p 本地的am或pm的等價顯示
%r 12小時的時間
%r 顯示小時和分鐘:hh:mm
%s 十進位制的秒數
%t 水平製表符
%t 顯示時分秒:hh:mm:ss
%u 每週的第幾天,星期一為第一天 (值從0到6,星期一為0)
%u 第年的第幾周,把星期日做為第一天(值從0到53)
%v 每年的第幾周,使用基於周的年
%w 十進位制表示的星期幾(值從0到6,星期天為0)
%w 每年的第幾周,把星期一做為第一天(值從0到53)
%x 標準的日期串
%x 標準的時間串
%y 不帶世紀的十進位制年份(值從0到99)
%y 帶世紀部分的十制年份
%z,%z 時區名稱,如果不能得到時區名稱則返回空字元。
%% 百分號
下面在看段**c++獲取當前系統時間並格式化輸出
#include
#include
using namespace std;
string gettime()
int main()
總結
Oracle獲取系統時間及格式化
oracle 獲取當前日期及日期格式 獲取系統日期 sysdate 格式化日期 to char sysdate yy mm dd hh24 mi ss 或 to date sysdate yy mm dd hh24 mi ss 格式化數字 to number 注 to char 把日期或數字轉換為字...
Oracle獲取系統時間及格式化
oracle獲取系統時間及格式化 獲取系統日期 sysdate 格式化日期 to char sysdate yy mm dd hh24 mi ss 或 to date sysdate yy mm dd hh24 mi ss 格式化數字 to number 注 to char 把日期或數字轉換為字串 ...
jsp時間獲取及格式化
記錄,供自己參考 方法一 原生js使用date函式 獲取系統時間 var now new date var year now.getfullyear 年 var month now.getmonth 1 月 var day now.getdate 日 var stop start time year...