in reply to Re: Convert Octet String DateAndTime to printable string
in thread Convert Octet String DateAndTime to printable string

Thanks rhesa, that worked just like I wanted! Thanks for everyone's reply also. This is the best site I've come across in a long time. Good job!
  • Comment on Re^2: Convert Octet String DateAndTime to printable string

Replies are listed 'Best First'.
Re^3: Convert Octet String DateAndTime to printable string
by Anonymous Monk on May 09, 2007 at 18:33 UTC
    Hi, I am wokring on the same problem. Could you help me also. my contact is kevin.zhang@mblox.com
      Hi One of the varbind of snmptrap carrying date and time in Octet String. When i am trying to ocnvert it into string i got value that is not macthing the data and time. "DateAndTime (Octet String) (SIZE(8|11))"
      Here is my code


      $octets="D8 06 01 01 27 3B 00 ";

      @date = unpack 'n C6 a C2', $octets;

      $datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d", @date; # no time zone

      print $datetime

      $datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d.%d%s%02d:%02d", @date; # with tz info
      ~
      perl tt2.pl

      17464-32-48 54:32:48

        Well, your $octets only has 7 bytes in it, so it wouldn't pass the specs of "either 8 or 11 octets". Fiddling with it a bit suggests you dropped a "07" from the start:
        # you presented the octets as a string of hex numbers. # I'll do the same, then strip out the spaces, and pack # it into binary format $octets = "07 D8 06 01 01 27 3B 00"; $octets =~ s/ //g; $octets = pack "H*", $octets; # now $octets is in a form as you would get back from snmp, # so we unpack with the template I gave earlier: @date = unpack 'n C6 a C2', $octets; # and print $datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d", @date; print $datetime;
        This prints: "2008-06-01 01:39:59".
      Hi One of the varbind of snmptrap carrying date and time in Octet String. When i am trying to ocnvert it into string i got value that is not macthing the data and time. "DateAndTime (Octet String) (SIZE(8|11))" Here is my code $octets="D8 06 01 01 27 3B 00 "; @date = unpack 'n C6 a C2', $octets; ##</code><code>## $datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d", @date; # no time zone print $datetime #$datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d.%d%s%02d:%02d", @date; # with tz info ~ perl tt2.pl 17464-32-48 54:32:48 Please let me know what is the problem in my code. My id is"umkamath@in.ibm.com"
      Hi One of the varbind of snmptrap carrying date and time in Octet String. When i am trying to ocnvert it into string i got value that is not macthing the data and time. "DateAndTime (Octet String) (SIZE(8|11))"
      Here is my code

      $octets="D8 06 01 01 27 3B 00 "; @date = unpack 'n C6 a C2', $octets; $datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d", @date; # no time zone print $datetime #$datetime = sprintf "%04d-%02d-%02d %02d:%02d:%02d.%d%s%02d:%02d", @date; # with tz info ~ perl tt2.pl 17464-32-48 54:32:48