2014-11-13 4 views
1

Я хочу преобразовать "ISODate(\"2014-11-13T18:43:33.868Z\")" в C# datetime ex 2014-11-13 18:43:33. Значение "ISODate(\"2014-11-13T18:43:33.868Z\")" взято из коллекции MongoDB.C# с mongodb DateTime Convert

Пожалуйста, помогите.

+1

Вы пытались решить эту проблему? С какими конкретными проблемами вы сталкиваетесь? – DGibbs

+1

Поместите код C# в свой вопрос – Disposer

+0

, который не является C# datetime.looks больше похож на формат TimeStamp, пожалуйста, покажите свой код C#, который вы используете в настоящее время, также выполняет поиск по Google, поскольку есть много примеров, и это уже был спрошен на SO ранее .. показать больше усилий, пожалуйста .. http://stackoverflow.com/questions/3556144/how-to-create-a-net-datetime-from-iso-8601-format – MethodMan

ответ

1

Вы можете хранить дату в качестве объекта BsonDateTime, когда вы вытащите его из базы данных, а затем преобразовать его следующим образом:

DateTime dt = bdt.ToUniversalTime(); 

И вы можете найти this question полезным, чтобы узнать больше о том, как ToUniversalTime() работ.

1

Если я понимаю, просто потому, что он пишет ISODate в вашей строке, что не делает его ISO 8601. "O" or "o" standard format specifier соответствует стандарту ISO 8601 и который представляет собой строку произвольного формата "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" для DateTime. Это не соответствует вашему строковому формату.

Если у вас все строки имеют стабильный формат, как это, вы можете использовать custom date and time formats с литеральным разделителем строк;

string s = "ISODate(\"2014-11-13T18:43:33.868Z\")"; 
string format = "'ISODate(\"'yyyy-MM-dd'T'HH:mm:ss.fff'Z\")'"; 
DateTime date; 
if(DateTime.TryParseExact(s, format, CultureInfo.InvariantCulture, 
          DateTimeStyles.None, out date)) 
{ 
    Console.WriteLine (date); 
} 

Если вы хотите, чтобы строковое представление вашего DateTime с "2014-11-13 18:43:33" формате, вы можете использовать DateTime.ToString() метод, как;

date.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);