簡體   English   中英

從提振日期獲取年份作為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM