2011-10-18 80 views
0

我試圖使用strptime將字符串「2011-12-12」轉換爲時間值。有人可以解釋爲什麼這不起作用嗎?在C中使用strptime()轉換「%y-%m-%d」

根據該文檔:

格式是由零個或多個指令。每個指令由以下內容之一組成:一個或多個空格字符(由isspace()指定);一個普通的字符(既不是'%'也不是一個空格字符);或轉換規範。

if(strptime(date, "%y-%m-%d", &tm) != NULL) 
+0

'%-'是一個轉換規範嗎? (我想也許你只是想''') – Nemo

+0

我犯了一個錯誤..最初我嘗試了 - ,將其更改爲% - 進行測試..兩種情況都失敗了..我忘了在發佈時刪除'%'。 – Begui

回答

4

看看the documentation%y說明符是兩位數年份,沒有世紀,而%Y是全年,包括世紀。當您在輸入字符串中使用%y時,它會將年份解析爲20,然後由於字符串的其餘部分(11-12-12)與-%m-%d不匹配,解析失敗。

要麼更改格式字符串以使用%Y(推薦),要麼將輸入更改爲使用兩位數日期(強烈推薦使用而不是)。

+0

我想我需要學習多讀一點。謝謝亞當。 – Begui

相關問題