0

文字列「2011-12-12」をstrptimeを使って時間値に変換しようとしています。誰かがこれがうまくいかない理由を説明できますか?

ドキュメントによると:

形式は、0 個以上のディレクティブで構成されます。各ディレクティブは、次のいずれかで構成されます。1 つまたは複数の空白文字 (isspace() で指定)。通常の文字 (「%」でも空白文字でもない); または変換仕様。

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

1 に答える 1

4

ドキュメントを見てください。%y指定子は、世紀を含まない 2 桁の年を表しますが、世紀%Yを含む完全な年を表します。入力文字列でを使用する%yと、年が として解析されますが20、残りの文字列 ( 11-12-12) が一致しないため-%m-%d、解析は失敗します。

書式文字列を使用するように変更するか%Y(推奨)、入力を変更して 2 桁の日付を使用するようにします (強くお勧めしません)。

于 2011-10-18T20:17:26.253 に答える