IsoDate и DateTime в MongoDB с использованием C #

Предположим, я хочу запросить mongo по dateTime. У меня есть две переменные C #, представляющие дату начала и дату окончания.

1) {20.10.2011 00:00:00}

2) {22.10.2011 00:00:00}

Теперь BsonDateTime.Create (dateTime) также хорошо преобразовал их в BSON DateTime:

1) 2011-10-20T00: 00: 00 MongoDB.Bson.BsonDateTime

2) 2011-10-22T00: 00: 00 MongoDB.Bson.BsonDateTime

Это код, создающий dateTimes (_value является строкой):

DateTime dateTime;
bool parsed = DateTime.TryParse(_value, out dateTime);
if (!parsed)
    throw new FormatException("Wrong format for a query param");
return BsonDateTime.Create(dateTime);

Затем следующий код создает запрос:

private QueryComplete MakeQuery(string key, BsonValue value)
{
    if (_separatorType == ">=")
        return Query.GTE(key, value);
    if (_separatorType == "<=")
        return Query.LTE(key, value);
    return Query.EQ(key, value);
}

И я действительно получаю такое странное значение в запросе:

"Sessions.End" : { "$gte" : ISODate("2011-10-19T21:00:00Z"), "$lte" : ISODate("2011-10-21T21:00:00Z") },

Ну, я гуглил ISODate, но не нашел причины, почему это должно быть сдвинулся. Это нормально?

8
задан i3arnon 30 December 2013 в 18:58
поделиться