/// <summary> /// OctetString转时间 /// </summary> /// <param name="ss">字符串如 07 E3 06 06 11 10 0A 00 2B 08 00</param> /// <returns>2012-09-23 17:01:27</returns> public static string OctetString2DateAndTime(string ss) { // 07 E3 06 06 11 10 0A 00 2B 08 00 byte[] bts=ss.Trim().Split(' ').Select(s => byte.Parse(Convert.ToInt32("0x" + s, 16).ToString())).ToArray(); byte[] format_str = new byte[19]; //保存格式化过后的时间字符串 int year = bts[0] * 256 + bts[1]; int month = bts[2]; int day = bts[3]; int hour = bts[4]; int minute = bts[5]; int second = bts[6]; int msecond = bts[7]; //以下为格式化字符串 int index = 3; int temp = year; for (; index >= 0; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[4] = (byte)'-'; index = 6; temp = month; for (; index >= 5; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[7] = (byte)'-'; index = 9; temp = day; for (; index >= 8; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[10] = (byte)' '; index = 12; temp = hour; for (; index >= 11; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[13] = (byte)':'; index = 15; temp = minute; for (; index >= 14; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } format_str[16] = (byte)':'; index = 18; temp = second; for (; index >= 17; index--) { format_str[index] = (byte)(48 + (temp - temp / 10 * 10)); temp /= 10; } return Encoding.Default.GetString(format_str); }