2016-11-27 8 views
1

Datetime Octetstring을 ASCII로 변환하는 방법. python netsnmp의 예제 중 하나를 읽었지만 아직 해결할 수 없습니다.GoLang에서 datetime OctetString을 사람이 읽을 수있는 문자열로 변환

:

내가 이런 걸해야 날짜의 값

[]byte{0x7, 0xe0, 0x1, 0x1c, 0x14, 0x4, 0x2a, 0x0, 0x2b, 0x0, 0x0} 

그리고 출력의 []uint8

[7 224 1 28 20 5 42 0 43 0 0] 

또는 이동 구문 표현의 슬라이스로 gosnmp로부터받은 것입니다

2015-10-7,17:23:27.0,+0:0 

여기는 mibs입니다. oid : HOST-RESOURCES-MIB::hrSWInstalledDate

binary을 사람이 읽을 수있는 ASCII 또는 문자열로 디코딩하는 방법에 대한 아이디어를 얻을 수 있습니까?

답변

2

형식은 여기에 설명되어 있습니다 : 당신은 그냥 당신이 언급 한 형식의 날짜/시간 문자열을 작성해야하는 경우 Convert snmp octet string to human readable date format

, 이것은 그것을 할 것입니다 :

func snmpTimeString(c []byte) string { 
    year := (int(c[0]) << 8) | int(c[1]) 
    return fmt.Sprintf("%d-%d-%d,%02d:%02d:%02d.%d,%c%d:%d", year, c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10]) 
} 

func main() { 
    c := []byte{0x7, 0xe0, 0x1, 0x1c, 0x14, 0x4, 0x2a, 0x0, 0x2b, 0x0, 0x0} 
    fmt.Println(snmpTimeString(c)) 
} 

https://play.golang.org/p/7WwQbPuESC를 참조하십시오.

+0

일부 예 또는 스 니펫이 매우 유용 할 것입니다. 이미 읽었으며 변환에 대한 다양한 옵션을 시도했습니다. –

+1

죄송합니다. 제 전화에서 답변을하고 계시겠다고 생각했습니다. 컴퓨터 앞에 다른 사람이 먼저하지 않으면 예를 들어 보겠습니다. –

+0

고마워요. –