Я конвертирую дату C# в строку. Позже, когда я конвертирую его обратно в объект DateTime, кажется, что они не равны.конвертировать C# дату времени в строку и обратно
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
Маленькая точка: если вы собираетесь разбирать строку с помощью 'InvariantCulture', то вы, вероятно, захотите передать' InvariantCulture' в метод ToString, просто для того, чтобы быть в безопасности: 'now1.ToString (FMT, CultureInfo. InvariantCulture); ' –