所以我沒有在這裏或其他任何地方看到過使用<ctime>
或其他庫獲得月份小時和分鐘的方法。MM:hh:mm time with C++
我現在能做些什麼,只是得到完整的當前日期:
time_t now = time(0);
cout<<ctime(&now);
有什麼建議?
所以我沒有在這裏或其他任何地方看到過使用<ctime>
或其他庫獲得月份小時和分鐘的方法。MM:hh:mm time with C++
我現在能做些什麼,只是得到完整的當前日期:
time_t now = time(0);
cout<<ctime(&now);
有什麼建議?
可以使用<ctime>
標準庫這樣的:
#include <ctime>
#include <iostream>
int main()
{
// get current time
std::time_t timer = std::time(0);
// convert to 'broken time'
std::tm bt = *std::localtime(&timer); // not thread safe
// extract month number from 'broken time' struct
std::cout << "month: " << (bt.tm_mon + 1) << '\n';
std::cout << "hours: " << (bt.tm_hour) << '\n';
std::cout << "mins : " << (bt.tm_min) << '\n';
}
功能std::localtime回報一個指針內部statc結構類型std::tm。
因爲它的指針使用*
返回指針到內部結構最好是由提領將其複製到本地版本:
// copy what the returned pointer points to into `bt`.
std::tm bt = *std::localtime(&timer);
是啊,所以這個作品:D。你現在可以解釋一下這個部分了嗎?tm bt = * std :: localtime(&timer);'或者只是給我的鏈接信息 –
@MisterWhite我添加了一些解釋,包含相關函數和結構的鏈接。 – Galik
例如。所以通過執行'* localtime(&timer)'我們把內存'Wed Dec 28 06:47:03 2011',然後'tm struct'按照我們想要的方式解密它? –
嘗試
std::put_time("%a %b %d %H:%M:%S %Y", &now);
我使用c + +,而不是c。什麼是put_time? –
['std :: put_time'](http://en.cppreference.com/w/cpp/io/manip/put_time)是C++ –
錯誤:put_time未聲明 –
如果boost
你試試這個是好的:
boost::posix_time::to_simple_string(boost::posix_time::microsec_clock::local_time()).c_str()
好吧,這是充滿了一切 –
由於您使用的ctime(C時) ,所有的C事情應該工作。你可以使用strftime
char timestr[32];
strftime(timestr, sizeof(timestr), "%m:%H:%M", localtime(&now));
你是什麼意思*月份小時和分鐘*?你想顯示當前月份的時間:當前小時:當前分鐘? – NathanOliver
請參閱std :: time_get模板類。 –
@NathanOliver「month:當前小時:當前分鐘」 - 是 –