1

文字列から日付を取り出す必要があります。誰もが日付を印刷するときに公式の ISO 形式を使用しているわけではないため、使用可能なすべての日付形式に対して日付パーサーを作成することは実際的ではなく、できるだけ多くの日付形式を処理する必要があります - 私はデータを制御しません特定の形式で提供されることは期待できません。

これはおそらく何年も前に解決された問題のように思えますが、私の Google-fu は弱すぎて解決策を見つけることができません。:(

文字列を指定すると、その文字列で参照されている月、日、年、時、分、秒などを返す C++ ライブラリが既に存在しますか?

擬似コード:

string s1 = "There is an expected meteor shower this Thursday,"
            "August 15th 2013 at 4:39 AM.";
string s2 = "20130815T04:39:00";
date d1 = magicConverter(s1);
date d2 = magicConverter(s2);
assert(d1 == d2);
4

1 に答える 1

-1

hereのコードを使用することもできますが、使用する時間形式をコードに伝えるマスクを構成する必要があります。マスクと文字列を取り、時間を節約し、好きな形式で印刷できるクラスルーチンを作成する場合は、十分に準備する必要があります。Daynames と Monthnames もサポートしている場合は、さらに詳しく調べる必要があります。ほとんど同じように見える機能を提供するモジュールを使用して、Pythonで動作するようにしました。

詳細については:

2013-08-03 の例をもう一度見てください。JJJJ-MM-DD または JJJJ-DD-MM を示すマスクを持っている場合を除いて、この日付が 8 月または 4 月に属しているかどうかを示すことができるコンピューターはありません。また、このライブラリは、標準のマスクされた時間のみを通知する場合があります。したがって、この場合は 8 月につながる可能性があります。しかし、あなたが言ったように、それは任意の日付宣言である可能性があるため、基準に従う必要はなく、したがって3月を意味することもあります. もう 1 つの可能性は、コンテキストから日付を伝えることです (たとえば、増加を探すことによってすべての同じ時間形式の列を持つテーブルを作成します (これは、1 年間だけ月に 1 日だけを調べた場合にも失敗します)。 .

別の例... 2013-05-04 と聞いたら... 何月に属しますか? あなたは私に言うかもしれません...エイプリル。5 月 4 日には「いいえ」と答え、5 月と 4 月 5 日にはその逆です。このパズルを2つの解決策で解決する方法を教えていただければ、あなたの反対票を理解できます...あなたを助けようとしている人に反対票を投じる前に考えてください。

于 2013-08-14T20:56:00.100 に答える