我想將當前時間打印爲2011-08-18 10:11:12 -07:00
。我公司開發的代碼片斷如下,以指定格式獲取數字時區
#include <iostream>
using namespace std;
void time_to_string(time_t clock,const char *fmtstr)
{
char buf[256];
if (strftime(buf, 256, fmtstr, localtime(&clock)) == 0)
buf[0] = 0;
cout << buf << endl;
}
int main()
{
time_to_string(time(NULL), "%Y-%m-%d %H%M%S %z");
}
我能夠顯示時間爲2011-08-18 10:11:12 -0700
但不是2011-08-18 10:11:12 -07:00
。使用"%Y-%m-%d %H%M%S %:z"
產生2011-08-18 10:11:12 %:z
。
如何在C/C++中完成上述任務。
您不應該對緩衝區中數據的長度做任何假設。您需要先手動清零緩衝區,然後確定數據的結尾位置。 – Nathanael
但是你知道buf中數據的格式... –
'%z'不會改變,但問題是如果是早上7點,'%z'會被移動一個。你的代碼將會失敗。 –