C++ で日付をある形式から別の形式に変換する方法。例:- 01-DEC-12 の形式の日付がありますが、12012012 (mmddyyyy) に変更したいです。 注意 すべての日付形式に文字列を使用しています。
3 に答える
これにはサードパーティのライブラリを使用することをお勧めします。さまざまな日付形式を独自に解析する必要があります。そうしたい場合は、発生を許可するすべての日付形式文字列のある種のホワイトリストを定義することをお勧めします。
01-DEC-12
12.01.2012
2012-01-12
2 番目のステップは、内部で使用する一般的な日付形式を定義することです (UNIX-Timestamp、time_t 構造体など)。
3 番目のステップは、各 date-format-string にパーサーを提供することです。これは、何らかの種類のパーサーを独自に作成する必要がある部分です (たとえば、C/C++ および/または stringstreams の基本的な文字列機能を使用して)。
許可されたフォーマット文字列のホワイトリストを慎重に定義してください。「yyyy-mm-dd」と「yyyy-dd-mm」のようなものを定義するのは良い考えではありません (2013-12-01 の日付を想像してみてください -> 2013 年 12 月 1 日または 2013 年 1 月 12 日ですか?)
boost date timeなど、サードパーティのライブラリを使用することをお勧めします。さらに、これが内部使用のみに必要な場合は、文字列を使用するのではなく、別の種類の表現 (UNIX-Timestamp や time_t 構造体など) を使用する必要があります。