its constructor. All the other ICU calendars seem to have this, and unless
I explicitly call setTimeInMillis( someInt ) after creating a
setting fields seems to yield incorrect
timestamps when getting the milliseconds later.
// This version doesn"t seem to work correctly
com.ibm.icu.util.ChineseCalendar chineseCalendar = new
com.ibm.icu.util.ChineseCalendar();
chineseCalendar.set( Calendar.YEAR, 22 );
chineseCalendar.set( Calendar.MONTH, 0 );
chineseCalendar.set( Calendar.DATE, 19 );
chineseCalendar.add( Calendar.DATE, 1 );
// This yields -144684979200000, which turns into Fri Mar 05 00:00:00 PST 2616
milli = chineseCalendar.getTimeInMillis();
System.out.println("chineseCalendar.getTimeInMillis() = " + milli);
System.out.println("chineseCalendar date = " + new Date(milli));
// This version works as expected
com.ibm.icu.util.ChineseCalendar chineseCalendar = new
com.ibm.icu.util.ChineseCalendar();
// Must forcibly set the time in milliseconds to something or the milliseconds
will not evaluate correctly later
chineseCalendar.setTimeInMillis( System.getTimeInMillis() );
chineseCalendar.set( Calendar.YEAR, 22 );
chineseCalendar.set( Calendar.MONTH, 0 );
chineseCalendar.set( Calendar.DATE, 19 );
chineseCalendar.add( Calendar.DATE, 1 );
// This yielded 1109626848245 in testing, which turns into Mon Feb 28 13:40:48
PST 2005,
// which was the expected date result (hours, minutes and seconds can be
ignored for my purposes)
milli = chineseCalendar.getTimeInMillis();
System.out.println("chineseCalendar.getTimeInMillis() = " + milli);
System.out.println("chineseCalendar date = " + new Date(milli));
Attachments
Change History
Download in other formats:
|