如何使用C#将mongodb BsonDateTime(UTC)转换为当地时间
问题描述:
在我的C#控制台应用程序项目中,我使用MongoDB.Driver.2.4.3连接到MongoDB 3.2.10。如何使用C#将mongodb BsonDateTime(UTC)转换为当地时间
如何将我的代码中的“playerInBrazil.birthdate”转换为我的本地日期时间值(东部标准时间),该代码被定义为BsonDateTime(我相信这是UTC)
我试图做减法操作(不允许)和DateTime.ToLocalTime方法(),但无法使其工作。
static void Main(string[] args)
{
DateTime myTimeConvert = DateTime.Now;
var client = new MongoClient("mongodb://localhost:27017");
var DB = client.GetDatabase("football");
var players = DB.GetCollection<Player>("players");
var playersInBrazil = players.AsQueryable()
.Where(p => p.country == "Brazil");
foreach (var playerInBrazil in playersInBrazil)
{
Console.Write(playerInBrazil.firstname);
Console.Write(" birthdate in UTC time is ");
Console.Write(playerInBrazil.birthdate);
Console.Write(" and in my local time is ");
//myTimeConvert =?
Console.WriteLine(myTimeConvert);
}
}
internal class Player
{
public ObjectId Id { get; set; }
public string firstname { get; set; }
public BsonDateTime birthdate { get; set; }
public string country { get; set; }
public double goals { get; set; }
}
}
答
BsonDateTime有一个返回一个DateTime这里http://api.mongodb.com/csharp/current/html/M_MongoDB_Bson_BsonDateTime_ToLocalTime.htm
更多信息,你的意思是这样myTimeConvert =的DateTimeOffset(playerInBrazil.birthdate)一.ToLocalTime()方法;当我尝试它时告诉我不能像方法一样使用。 – ikask
你可以在'birthdate'上使用'[BsonDateTimeOptions(Kind = DateTimeKind.Local)]'注释,C#驱动程序会为你转换它。 – Veeram