I want to convert "ISODate(\"2014-11-13T18:43:33.868Z\")"
to c# datetime ex 2014-11-13 18:43:33
.
Value "ISODate(\"2014-11-13T18:43:33.868Z\")"
take from MongoDB collection.
Please Help.
I want to convert "ISODate(\"2014-11-13T18:43:33.868Z\")"
to c# datetime ex 2014-11-13 18:43:33
.
Value "ISODate(\"2014-11-13T18:43:33.868Z\")"
take from MongoDB collection.
Please Help.
You can set DateTime
in C# to UTC
var createDate = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc)
or
dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc)
Then insert type DateTime
into mongodb
It worked in my case.
You can store your date as a BsonDateTime object when you pull it from the database, then convert it as follows:
DateTime dt = bdt.ToUniversalTime();
And you may find this question useful to learn more about how ToUniversalTime()
works.
If I understand clearly, just because it writes ISODate
in your string, that doesn't make it ISO 8601 format. The "O"
or "o"
standard format specifier complies ISO 8601 format and which is "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK"
custom format string for a DateTime
. That doesn't match with your string format.
If your all strings has a stable format like this, you can use custom date and time formats with literal string delimiter like;
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);
}
If you want to string representation of your DateTime
with "2014-11-13 18:43:33"
format, you can use DateTime.ToString()
method like;
date.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);