OctetString 转String

     /// <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);
        }
原文地址:https://www.cnblogs.com/simadi/p/10998224.html