Линк Дата сравнения проблемы - PullRequest
0 голосов
/ 29 октября 2009

У меня есть следующий код, но он не работает для сопоставления строки формы, преобразованной датой, может ли кто-нибудь помочь мне в этом заранее спасибо

        DateTime dt = DateTime.Now;
        List<DateTime> dateTimes = new List<DateTime>();
        dateTimes.Add(dt);
        dateTimes.Add(dt);
        dateTimes.Add(dt);
        string str = dt.ToString();
        DateTime myDateTime = DateTime.Parse(str);

        var query = from d in dateTimes
                    where d == myDateTime
                    select d;
        foreach (var result in query)
        {
            Console.WriteLine(result);
        }
        Console.Read();

Ответы [ 3 ]

1 голос
/ 29 октября 2009

Причина в том, что метод ToString немного усекает фактическое время, поэтому результат не тот, когда вы возвращаетесь в другом направлении.

Замените вашу первую строку, например, на

DateTime dt = new DateTime(2009,10,29,16,35,56); 

и вы увидите, что происходит.

0 голосов
/ 30 октября 2009

я решил проблему Решение состоит не в том, чтобы сохранить метку времени в формате datetime в строке вместо. Вы должны преобразовать объект datetime в соответствующие ему тики и сохранить эти тики в строковой переменной и после слова, когда вы хотите, чтобы объект даты использовал следующую строку кода DateTime myDateTime = new DateTime (int64.Parse (strDateTimeTicks)); это вернет точный объект даты и времени

0 голосов
/ 30 октября 2009

Я бы порекомендовал не использовать ToString () так часто, когда вам нужно переключаться между типами, лучше использовать пользовательский объект как минимум для специализированных версий методов для сравнения, например CompareTo.

попробуйте

DateTime dt = DateTime.Now; List dateTimes = new List (); dateTimes.Add (дт); dateTimes.Add (дт); dateTimes.Add (дт); string str = dt.ToString (); DateTime myDateTime = DateTime.Parse (str);

    var query = from d in dateTimes
                where d.CompareTo(myDateTime) == 1
                select d;
    foreach (var result in query)
    {
        Console.WriteLine(result);
    }
    Console.Read();

С уважением,

Усман Афзал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...