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); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)