Linux和Windows下獲得當前時間並格式化

2022-03-08 07:23:49 字數 1036 閱讀 6120

ref:linux和windows下獲得當前時間並格式化, 19.7

很多時候我們希望在程式裡獲得當前時間,比如「20190720 11:40:32」這樣的時間格式字串,如何實現?

linux下:

time_t now;

struct tm *tm;

time(&now);

tm = localtime(&now);

char time_str[100];

sprintf(time_str, "%04d%02d%02d %02d:%02d:%02d",

tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,

tm->tm_hour, tm->tm_min, tm->tm_sec);

time_str的內容為「20190720 11:40:32」這樣格式的時間,也可以格式化為其他形式。

windows下:

time_t curtime;

struct tm *timeinfo;

char buffer[80];

time(&curtime);

timeinfo = localtime(&curtime);

strftime(buffer, sizeof(buffer), "%y-%m-%d-%h-%m-%s", timeinfo);

buffer的內容為「2019-07-20-11-40-32」這樣格式的時間,也可以格式化為其他形式。

注:使用ctime函式和asctime函式也可以列印出本地時間的字串,比如「sun aug 11 13:38:54 2019」這樣的形式。這兩個函式的區別就是傳參的不同,乙個是time_t,乙個是struct tm。

上面的strftime也是可以使用sprintf實現相同的功能。與strftime相反的操作是strptime,遺憾這個函式在windows下沒有實現,網上能找到別人根據linux下的strptime原始碼修改過的版本(或者可以直接拿來用。其實現並沒有用到sscanf,而是更加底層的格式解析。

Windows和Linux下socket的區別

1.標頭檔案 windows下winsock.h或winsock2.h linux下netinet in.h 大部分都在這兒 unistd.h close函式在這兒 sys socket.h 在in.h裡已經包含了,可以省了 2.初始化 windows下需要用wsastartup啟動ws2 32.l...

windows和linux下socket程式設計的不同

windows windows 標頭檔案的區別 include include windows 初始化的區別 windows 宣告socket socket型別 windows socket關閉 closesocket windows socket操作錯誤返回值 socket error windo...

windows下bat批處理txt檔案獲取指定的列

將以下 複製貼上到txt檔案中,並將檔案編碼格式修改為ansi,跟要處理的檔案放乙個資料夾內執行。如下,cols引數可自行設定需要獲取哪些列的值,如 表示所有列,1,3 表示第一列第一列和第三列之後的列等等,改完此引數需要修改echo出的引數列表echo i j k以配合全部輸出。echo off ...