C#生成一个按时间排序的GUID
/// <summary> /// 创建一个按时间排序的Guid /// </summary> /// <returns></returns> public static string GetID() { byte[] guidArray = Guid.NewGuid().ToByteArray(); DateTime now = DateTime.Now; DateTime baseDate = new DateTime(1900, 1, 1); TimeSpan days = new TimeSpan(now.Ticks - baseDate.Ticks); TimeSpan msecs = new TimeSpan(now.Ticks - (new DateTime(now.Year, now.Month, now.Day).Ticks)); byte[] daysArray = BitConverter.GetBytes(days.Days); byte[] msecsArray = BitConverter.GetBytes((long)(msecs.TotalMilliseconds / 3.333333)); Array.Copy(daysArray, 0, guidArray, 2, 2); //毫秒高位 Array.Copy(msecsArray, 2, guidArray, 0, 2); //毫秒低位 Array.Copy(msecsArray, 0, guidArray, 4, 2); return new System.Guid(guidArray).ToString(); }