如何将八进制字符串转换为可读字符串(C#)?
我正在使用一个用于C#的SNMP库,它没有很好的文档。 当我请求一个日期时,它会返回一个八进制字符串,我不知道该怎么处理它 当我将其转换为字符串时,它会变成:如何将八进制字符串转换为可读字符串(C#)?,c#,C#,我正在使用一个用于C#的SNMP库,它没有很好的文档。 当我请求一个日期时,它会返回一个八进制字符串,我不知道该怎么处理它 当我将其转换为字符串时,它会变成: 07 DC 02 17 0F 14 0E 00 2D 02 00根据以下文件: 返回八进制对象的字符串表示形式。如果 在对象中找到不可打印的字符,输出为 字符串的十六进制表示形式。(重写Object.ToString() 请确保没有不可打印的字符 更新 关于实现的更多详细信息:。只是一个猜测 var b= "07 DC 02 17 0F
07 DC 02 17 0F 14 0E 00 2D 02 00根据以下文件: 返回八进制对象的字符串表示形式。如果 在对象中找到不可打印的字符,输出为 字符串的十六进制表示形式。(重写Object.ToString() 请确保没有不可打印的字符 更新 关于实现的更多详细信息:。只是一个猜测
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);
输出:2012年2月23日下午3:20:14
编辑 现在这不再是猜测了。 以下是问题的格式
编辑-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您应该提及您正在使用的SNMP库…您正在使用的库是什么?非常具体的格式我认为您需要首先将其转换为日期时间。不幸的是,示例中包含了相当多的不可打印内容。@HenkHolterman是的,这是因为它应该是编码的时间戳,而不是字符串。他做错了什么,没有给我们提供足够的信息来帮助我们是的,看起来是个好的猜测。但它会留下一些未计算的字节(毫秒?)