s会用mongdb中经常会需要用到通过“_id”去检查数据,筛选数据,但是想根据具体时间的id每次都需要做一下转换,这样搜索起来就很简单了。
ObjectId转DateTime
/// <summary> /// objectid转化时间 /// </summary> /// <param name="objectid"></param> /// <returns></returns> public DateTime objectid2date(string objectid) { var _str = objectid.Substring(0, 8);//提取时间字段 4e7020cb var intspan= Int64.Parse(_str, System.Globalization.NumberStyles.HexNumber);//16进制转换10进制 System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区 DateTime dt = startTime.AddSeconds(intspan); return dt; }
DateTime转换ObjectId
/// <summary> /// 时间转化为objectid /// </summary> /// <param name="date"></param> /// <returns></returns> public string date2objectid(DateTime date) { ObjectId objid = new ObjectId(date, 0, 0, 0); return objid.ToString(); }