2016-03-30 19 views
-3

日付時刻文字列形式の任意の形式をC++を使用してUS日付時刻形式に変更します。 例 形式1:dddd、dd MMMM、yyyy h:mm:ss TT フォーマット2:MMMMのYYYY hを×:MM:SSのTT 形式3:MM:HHでMM/DD/YYYY SSC++を使用して、日付時刻文字列形式の任意の形式をUS日付時刻形式に変更します。

フォーマットは、下記の形式 DDDD、MMMM DDに変換して印刷され得なければならないすべての上、yyyy h:mm:ss tt(これは米国の時刻形式)

+1

あなたが試したことを私たちに教えてください –

+0

ちょっと現在私は手動で変換してDBに挿入しています – MTV

+0

私はepocのタイムコンバーターも良い解決策になると思います。しかし、複数の日時フォーマットが含まれている場合はどうすれば実行するのですか? – MTV

答えて

1

すべての例の形式が異なるため(例:コンマ、スペース、スラッシュなど)、th形式固有の文字をチェックすることによって電子入力フォーマット:機能handleFormatは、ご希望の出力フォーマットへの入力フォーマットからの変換を行うだろう

std::string inputDate = "Wed, 31 Mar, 2016 10:28:00"; 
if (inputDate.find(",") < std::string::npos) handleFormat1(); 
else if (inputData.find("/") < std::string::npos) handleFormat3(); 
else handleFormat2(); 

もちろん、より多くの入力形式に対処する必要がある場合は、正しい形式や日、月、年、および時刻を識別するのがより複雑になります。しかし、手動で行うことができるので、すべての可能なフォーマットについてもそれを把握することが可能でなければなりません。

+0

全体では71のフォーマットがあり、それぞれのフォーマットに条件を入れるのは非常に難しいでしょう。 – MTV

+0

そうです。しかし、私はその問題の簡単な解決策があるとは思わない(他の誰かがすでにそれを解決していない限り....)。おそらく、文字列を最初に数字、日/月の名前、セパレータに分割することができます。次のステップでは、異なる数字の意味を調べることができます(つまり、年のみが4桁で、日数は常に31未満です)。 – AchimGuetlein

関連する問題