<changes>
<release version="3.7-SNAPSHOT" date="2010-??-??">
+ <action dev="POI-DEVELOPERS" type="add">48924 - Allow access of the HWPF DateAndTime underlying date values</action>
<action dev="POI-DEVELOPERS" type="add">48926 - Initial support for the HWPF revision marks authors list</action>
<action dev="POI-DEVELOPERS" type="fix">49160 - Ensure that CTDigSigBlob is included in poi-ooxml jar</action>
<action dev="POI-DEVELOPERS" type="fix">49189 - Detect w:tab and w:cr entries in XWPF paragraphs, even when the XSD is silly and maps them to CTEmpty</action>
package org.apache.poi.hwpf.usermodel;
+import java.util.Calendar;
+
import org.apache.poi.util.BitField;
import org.apache.poi.util.BitFieldFactory;
import org.apache.poi.util.LittleEndian;
public final class DateAndTime
implements Cloneable
{
- public static final int SIZE = 4;
- private short _info;
+ public static final int SIZE = 4;
+ private short _info;
private static final BitField _minutes = BitFieldFactory.getInstance(0x3f);
private static final BitField _hours = BitFieldFactory.getInstance(0x7c0);
private static final BitField _dom = BitFieldFactory.getInstance(0xf800);
- private short _info2;
+ private short _info2;
private static final BitField _months = BitFieldFactory.getInstance(0xf);
private static final BitField _years = BitFieldFactory.getInstance(0x1ff0);
private static final BitField _weekday = BitFieldFactory.getInstance(0xe000);
_info = LittleEndian.getShort(buf, offset);
_info2 = LittleEndian.getShort(buf, offset + LittleEndian.SHORT_SIZE);
}
+
+ public Calendar getDate() {
+ // TODO Discover if the timezone is stored somewhere else or not
+ Calendar cal = Calendar.getInstance();
+ cal.set(
+ _years.getValue(_info2)+1900,
+ _months.getValue(_info2)-1,
+ _dom.getValue(_info),
+ _hours.getValue(_info),
+ _minutes.getValue(_info),
+ 0
+ );
+ cal.set(Calendar.MILLISECOND, 0);
+ return cal;
+ }
public void serialize(byte[] buf, int offset)
{