[英]How do I convert an OctetString into a readable String(C#)?
我正在為C#使用SNMP庫,但它沒有很好的文檔。 當我請求日期時,它將返回一個OctetString,我不確定該如何處理。
當我將其轉換為String時,它變為:07 DC 02 17 0F 14 0E 00 2D 02 00
只是一個猜測
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
編輯
現在不再是猜測。 這是問題的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
根據OctetString.ToString方法的文檔:
返回OctetStrig對象的字符串表示形式。 如果在對象中找到不可打印的字符,則輸出為字符串的十六進制表示。 (重寫Object.ToString()。)
請確保沒有不可打印的字符。
更新資料
有關實現的更多詳細信息: OctetString.ToString()方法 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.