Fix for 12 vs 24 hour times

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@391591 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2006-04-05 11:44:28 +00:00
parent 7f5d4fee40
commit 1d0672541e
4 changed files with 29 additions and 19 deletions

View File

@ -50,10 +50,10 @@ public class SystemTimeUtils {
cal.set(Calendar.YEAR, LittleEndian.getShort(data,offset));
cal.set(Calendar.MONTH, LittleEndian.getShort(data,offset+2)-1);
// Not actually needed 0 - can be found from day of month
// Not actually needed - can be found from day of month
//cal.set(Calendar.DAY_OF_WEEK, LittleEndian.getShort(data,offset+4)+1);
cal.set(Calendar.DAY_OF_MONTH, LittleEndian.getShort(data,offset+6));
cal.set(Calendar.HOUR, LittleEndian.getShort(data,offset+8));
cal.set(Calendar.HOUR_OF_DAY, LittleEndian.getShort(data,offset+8));
cal.set(Calendar.MINUTE, LittleEndian.getShort(data,offset+10));
cal.set(Calendar.SECOND, LittleEndian.getShort(data,offset+12));
cal.set(Calendar.MILLISECOND, LittleEndian.getShort(data,offset+14));
@ -80,7 +80,7 @@ public class SystemTimeUtils {
LittleEndian.putShort(dest, offset + 2, (short)(cal.get(Calendar.MONTH) + 1));
LittleEndian.putShort(dest, offset + 4, (short)(cal.get(Calendar.DAY_OF_WEEK)-1));
LittleEndian.putShort(dest, offset + 6, (short) cal.get(Calendar.DAY_OF_MONTH));
LittleEndian.putShort(dest, offset + 8, (short) cal.get(Calendar.HOUR));
LittleEndian.putShort(dest, offset + 8, (short) cal.get(Calendar.HOUR_OF_DAY));
LittleEndian.putShort(dest, offset + 10,(short) cal.get(Calendar.MINUTE));
LittleEndian.putShort(dest, offset + 12,(short) cal.get(Calendar.SECOND));
LittleEndian.putShort(dest, offset + 14,(short) cal.get(Calendar.MILLISECOND));

View File

@ -79,7 +79,7 @@ public class TestComment2000 extends TestCase {
0x48, 00,
00, 00, 0xE1-256, 0x2E, 0x1C, 00, 00, 00,
01, 00, 00, 00, 0xD6-256, 0x07, 01, 00,
02, 00, 0x18, 00, 0x0A, 00, 0x19, 00, 03,
02, 00, 0x18, 00, 0x16, 00, 0x19, 00, 03,
00, 0xD5-256, 02, 0x0A, 00, 00, 00,
0x0A, 00, 00, 00
};
@ -106,9 +106,19 @@ public class TestComment2000 extends TestCase {
assertEquals(1, c2a.getNumber());
assertEquals(0x92, c2a.getXOffset());
assertEquals(0x92, c2a.getYOffset());
Date exp_a = sdf.parse("2006-01-24 22:26:15.205");
Date exp_a = sdf.parse("2006-01-24 10:26:15.205");
assertEquals(exp_a, c2a.getDate());
}
public void testCommentAtomB() throws Exception {
Comment2000 cb = new Comment2000(data_b, 0, data_b.length);
Comment2000Atom c2b = cb.getComment2000Atom();
assertEquals(1, c2b.getNumber());
assertEquals(0x0a, c2b.getXOffset());
assertEquals(0x0a, c2b.getYOffset());
Date exp_b = sdf.parse("2006-01-24 22:25:03.725");
assertEquals(exp_b, c2b.getDate());
}
public void testWrite() throws Exception {
Comment2000 ca = new Comment2000(data_a, 0, data_a.length);

View File

@ -42,7 +42,7 @@ public class TestComment2000Atom extends TestCase {
private byte[] data_b = new byte[] {
00, 00, 0xE1-256, 0x2E, 0x1C, 00, 00, 00,
05, 00, 00, 00, 0xD6-256, 0x07, 01, 00,
02, 00, 0x18, 00, 0x0A, 00, 0x19, 00, 03,
02, 00, 0x18, 00, 0x15, 00, 0x19, 00, 03,
00, 0xD5-256, 02, 0x0A, 00, 00, 00,
0x0E, 00, 00, 00
};
@ -58,10 +58,10 @@ public class TestComment2000Atom extends TestCase {
Comment2000Atom ca = new Comment2000Atom(data_a, 0, data_a.length);
Comment2000Atom cb = new Comment2000Atom(data_b, 0, data_b.length);
// A is 2006-01-24 (2nd day of week) 22:26:15.205
Date exp_a = sdf.parse("2006-01-24 22:26:15.205");
// B is 2006-01-24 (2nd day of week) 22:25:03.725
Date exp_b = sdf.parse("2006-01-24 22:25:03.725");
// A is 2006-01-24 (2nd day of week) 20:26:15.205
Date exp_a = sdf.parse("2006-01-24 10:26:15.205");
// B is 2006-01-24 (2nd day of week) 21:25:03.725
Date exp_b = sdf.parse("2006-01-24 21:25:03.725");
assertEquals(exp_a, ca.getDate());
assertEquals(exp_b, cb.getDate());
@ -112,7 +112,7 @@ public class TestComment2000Atom extends TestCase {
a.setYOffset(0x92);
// Set the date
Date date_a = sdf.parse("2006-01-24 22:26:15.205");
Date date_a = sdf.parse("2006-01-24 10:26:15.205");
a.setDate(date_a);
// Check it's now the same as a
@ -134,7 +134,7 @@ public class TestComment2000Atom extends TestCase {
ca.setNumber(5);
// Change the date
Date new_date = sdf.parse("2006-01-24 22:25:03.725");
Date new_date = sdf.parse("2006-01-24 21:25:03.725");
ca.setDate(new_date);
// Change the x and y

View File

@ -40,7 +40,7 @@ public class TestSystemTimeUtils extends TestCase {
private byte[] data_b = new byte[] {
00, 00, 0xE1-256, 0x2E, 0x1C, 00, 00, 00,
01, 00, 00, 00, 0xD6-256, 0x07, 01, 00,
02, 00, 0x18, 00, 0x0A, 00, 0x19, 00, 03,
02, 00, 0x18, 00, 0x15, 00, 0x19, 00, 03,
00, 0xD5-256, 02, 0x0A, 00, 00, 00,
0x0A, 00, 00, 00
};
@ -50,8 +50,8 @@ public class TestSystemTimeUtils extends TestCase {
public void testGetDateA() throws Exception {
Date date = SystemTimeUtils.getDate(data_a);
// Is 2006-01-24 (2nd day of week) 22:26:15.205
Date exp = sdf.parse("2006-01-24 22:26:15.205");
// Is 2006-01-24 (2nd day of week) 10:26:15.205
Date exp = sdf.parse("2006-01-24 10:26:15.205");
assertEquals(exp.getTime(), date.getTime());
assertEquals(exp, date);
}
@ -59,15 +59,15 @@ public class TestSystemTimeUtils extends TestCase {
public void testGetDateB() throws Exception {
Date date = SystemTimeUtils.getDate(data_b, 8+4);
// Is 2006-01-24 (2nd day of week) 22:25:03.725
Date exp = sdf.parse("2006-01-24 22:25:03.725");
// Is 2006-01-24 (2nd day of week) 21:25:03.725
Date exp = sdf.parse("2006-01-24 21:25:03.725");
assertEquals(exp.getTime(), date.getTime());
assertEquals(exp, date);
}
public void testWriteDateA() throws Exception {
byte[] out_a = new byte[data_a.length];
Date date = sdf.parse("2006-01-24 22:26:15.205");
Date date = sdf.parse("2006-01-24 10:26:15.205");
SystemTimeUtils.storeDate(date, out_a);
for(int i=0; i<out_a.length; i++) {
@ -81,7 +81,7 @@ public class TestSystemTimeUtils extends TestCase {
System.arraycopy(data_b, 0, out_b, 0, 12);
System.arraycopy(data_b, 12+16, out_b, 12+16, data_b.length-12-16);
Date date = sdf.parse("2006-01-24 22:25:03.725");
Date date = sdf.parse("2006-01-24 21:25:03.725");
SystemTimeUtils.storeDate(date, out_b, 12);
for(int i=0; i<out_b.length; i++) {