[英]Get year from boost date as string
我正在使用boost的date對象,我想從此對象中以字符串或int形式獲取年份
我沒有找到執行此操作的簡單方法謝謝! 羅恩
#include <boost/date_time/local_time/local_time.hpp>
#include <boost/lexical_cast.hpp>
#include <string>
std::string x = boost::lexical_cast<std::string>
(second_clock::local_time().date().year());
應該做。
我為我的一個項目編寫了這些功能,您可能會發現它有用。 我發現lexical_cast在我的特定代碼中導致性能問題后,便以這種方式進行了操作。 (沒有保證,盡管它在我們的產品環境中運行了好幾年;)
using namespace boost;
gregorian::date date_from_str(const char* dateStr,const char* format) {
int year;
int month;
int day;
sscanf_s(dateStr,format,&year,&month,&day);
return gregorian::date(year,month,day);
}
std::string date_to_str(const gregorian::date& date,const char* format) {
char buf[10];
gregorian::date::ymd_type ymd = date.year_month_day();
sprintf_s(buf,sizeof(buf),format,ymd.year,ymd.month,ymd.day);
return std::string(buf);
}
gregorian::date dateInt_to_date(int dateInt) {
const int day = dateInt % 100;
const int month = (dateInt / 100) % 100;
const int year = dateInt / 10000;
return gregorian::date(year,month,day);
}
您可以對其進行編輯以僅返回年份部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.