C#with mongodb DateTime Convert

时间:2014-11-13 16:47:18

标签: c# mongodb datetime

我想将"ISODate(\"2014-11-13T18:43:33.868Z\")"转换为c#datetime ex 2014-11-13 18:43:33。  从MongoDB集合中获取值"ISODate(\"2014-11-13T18:43:33.868Z\")"

请帮助。

3 个答案:

答案 0 :(得分:1)

当您从数据库中提取日期时,可以将日期存储为BsonDateTime对象,然后按如下所示进行转换:

DateTime dt = bdt.ToUniversalTime();

您可能会发现this question有助于详细了解ToUniversalTime()的工作原理。

答案 1 :(得分: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);

答案 2 :(得分:1)

您可以在C#中将DateTime设置为UTC

var createDate = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc)

dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc)

然后将类型DateTime插入mongodb 在我的情况下有效。

DateTime C#

Inser mongodb same datetime