[SNMP4J] DateAndTime makeCalender improvement
Frank Fock
fock at agentpp.com
Sat Apr 9 11:32:00 CEST 2016
Hi Pim,
Do you have a test case (i.e. input values) for the case that the return
value is invalid with the 2.4.2 code?
Thanks in advance.
Best regards,
Frank
Am 08.04.2016 um 09:18 schrieb Pim Moerenhout:
> Hi Frank,
>
> I was using the org.snmp4j.agent.mo.snmp.DateAndTime class in my Snmp4j
> agent.I'm using the latest 2.4.2 release. I discovered that an DateTime
> encoded OctetString was not parsed correctly, and having a different
> Timezone then UTC generated other epoch values then expected.
>
> When I changed the makeCalendar method as follows, it works:
>
> public static GregorianCalendar makeCalendar(OctetString dateAndTimeValue) {
> GregorianCalendar gc;
> if (dateAndTimeValue.length() == 11) {
> String timezone = String.format("GMT%c%02d:%02d",
> (char)(dateAndTimeValue.get(8)),
> dateAndTimeValue.get(9), dateAndTimeValue.get(10));
> gc = new GregorianCalendar(TimeZone.getTimeZone(timezone));
> }
> else{
> // localtime
> gc = new GregorianCalendar();
> }
> int year = (dateAndTimeValue.get(0) & 0xFF ) * 256 +
> (dateAndTimeValue.get(1) & 0xFF );
> int month = (dateAndTimeValue.get(2) & 0xFF );
> int date = (dateAndTimeValue.get(3) & 0xFF );
> int hour = (dateAndTimeValue.get(4) & 0xFF );
> int minute = (dateAndTimeValue.get(5) & 0xFF );
> int second = (dateAndTimeValue.get(6) & 0xFF );
> int deci = (dateAndTimeValue.get(7) & 0xFF );
> gc.set(year, month-1, date, hour, minute, second);
> gc.set(Calendar.MILLISECOND, deci*100);
> return gc;
> }
>
> Could you change this?
>
> Regards, Pim
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> https://oosnmp.net/mailman/listinfo/snmp4j
--
---
AGENT++
Maximilian-Kolbe-Str. 10
73257 Koengen, Germany
https://agentpp.com
Phone: +49 7024 8688230
Fax: +49 7024 8688231
More information about the SNMP4J
mailing list