-1
我有一堆日期,我想通過C++轉換成YYYYMMDD格式。目前,我有下面的代碼剛剛運行它通過Linux date命令:C++提取子串並轉換爲特定日期格式
string shell_arg = inputStr;
shell_arg = "'" + shell_arg + "'";
string cmd="date -d " + shell_arg + " +%Y%m%d 2>/dev/null";
FILE *ls = popen(cmd.c_str(), "r");
char retval[100];
fgets(retval, sizeof(retval), ls);
pclose(ls);
if(!isdigit(retval[0]))
{
strcpy(retval,"99991231");
}
return retval;
這種處理大部分的日期格式,和那些無法處理返回「99991231」。我有一個數字格式的日期,就像
"Sep- 13"
"12 -Oct"
"13-Nov"
,都應該評估的第一個月每一年的,像
20130901
20121001
20131101
分別。你會如何做到這一點?我應該注意到,如果我們要使用正則表達式,我的配置只能使用GNU C庫(它使用regexec和regcomp,而不是regex_match)。
爲什麼你使用**既是一個字符數組又是'std :: string'? –
用 - 分割,修剪兩個字符串,檢測哪個atoi(s.data())不返回'0',並在需要時與另一個交換,然後使用第一個作爲年份,第二個月呢? – coyotte508
一旦我確定它是正確的格式,這將工作。任何想法如何做到這一點? @ coyotte508 – Danzo