C#の日時を文字列に変換しています。後でそれをDateTimeオブジェクトに変換し直すと、それらは等しくないように見えます。
const string FMT = "yyyy-MM-dd HH:mm:ss.fff";
DateTime now1 = DateTime.Now;
string strDate = now1.ToString(FMT);
DateTime now2 = DateTime.ParseExact(strDate, FMT, CultureInfo.InvariantCulture);
Console.WriteLine(now1.ToBinary());
Console.WriteLine(now2.ToBinary());
これが例です。すべてが文字列形式で含まれているように見えます。日付を印刷すると両方とも同じように表示されますが、オブジェクトを比較したり、日付をバイナリ形式で印刷したりすると、違いがわかります。私には奇妙に見えますが、ここで何が起こっているのか説明していただけますか?
上記のコードの出力は次のとおりです。
-8588633131198276118
634739049656490000