我正在为C#使用SNMP库,但它没有很好的文档。 当我请求一个Date时,它会给我一个OctetString,我不知道该怎么办。
当我将其转换为String时,它变为: 07 DC 02 17 0F 14 0E 00 2D 02 00
答案 0 :(得分:4)
只是一个猜测
var b= "07 DC 02 17 0F 14 0E 00 2D 02 00"
.Split(' ')
.Select(s => byte.Parse(s, NumberStyles.HexNumber))
.ToArray();
int year =b[0]*256 + b[1];
int month = b[2];
int day = b[3];
int hour = b[4];
int min = b[5];
int sec = b[6];
DateTime dt = new DateTime(year, month, day, hour, min, sec);
输出 2/23/2012 3:20:14 PM
修改强>
现在不再是猜测了。 以下是问题的SNMPv2-TC DateAndTime格式
修改-2 强>
var strdateTime =
String.Format("{0}/{1,2:00}/{2,2:00} {3,2:00}:{4,2:00}:{5,2:00}.{6,2:00} {7}{8,2:00}:{9,2:00} UTC",
year,month,day,hour,min,sec,
b[7],Convert.ToChar(b[8]),b[9],b[10]);
输出:2012/02/23 15:20:14.00 -02:00 UTC
答案 1 :(得分:0)
根据OctetString.ToString Method的文件:
返回OctetStrig对象的字符串表示形式。如果 在对象中找到不可打印字符,输出为a 字符串的十六进制表示。 (重写Object.ToString()。)
请确保没有不可打印的字符。
<强>更新强>
有关实施的更多详细信息:OctetString.ToString() method。