我試圖使用strptime將字符串「2011-12-12」轉換爲時間值。有人可以解釋爲什麼這不起作用嗎?在C中使用strptime()轉換「%y-%m-%d」
根據該文檔:
格式是由零個或多個指令。每個指令由以下內容之一組成:一個或多個空格字符(由isspace()指定);一個普通的字符(既不是'%'也不是一個空格字符);或轉換規範。
if(strptime(date, "%y-%m-%d", &tm) != NULL)
我試圖使用strptime將字符串「2011-12-12」轉換爲時間值。有人可以解釋爲什麼這不起作用嗎?在C中使用strptime()轉換「%y-%m-%d」
根據該文檔:
格式是由零個或多個指令。每個指令由以下內容之一組成:一個或多個空格字符(由isspace()指定);一個普通的字符(既不是'%'也不是一個空格字符);或轉換規範。
if(strptime(date, "%y-%m-%d", &tm) != NULL)
看看the documentation。 %y
說明符是兩位數年份,沒有世紀,而%Y
是全年,包括世紀。當您在輸入字符串中使用%y
時,它會將年份解析爲20
,然後由於字符串的其餘部分(11-12-12
)與-%m-%d
不匹配,解析失敗。
要麼更改格式字符串以使用%Y
(推薦),要麼將輸入更改爲使用兩位數日期(強烈推薦使用而不是)。
我想我需要學習多讀一點。謝謝亞當。 – Begui
'%-'是一個轉換規範嗎? (我想也許你只是想''') – Nemo
我犯了一個錯誤..最初我嘗試了 - ,將其更改爲% - 進行測試..兩種情況都失敗了..我忘了在發佈時刪除'%'。 – Begui