public String getFormattedDateTime() { //sometimes 12/31/1899 instead of 01/01/4713 BC. //http://stackoverflow.com/questions/20026154/convert-dbase-timestamp //TODO: add heuristic for deciding; //TODO: find example of file with time != 0 Calendar baseCalendar = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT); // baseCalendar.set(1899, 11, 31, 0, 0, 0); baseCalendar.set(-4712, 0, 1, 0, 0, 0); byte[] bytes = getBytes(); try (InputStream is = new ByteArrayInputStream(getBytes())) { int date = EndianUtils.readIntLE(is); int time = EndianUtils.readIntLE(is); baseCalendar.add(Calendar.DATE, date); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT); return df.format(baseCalendar.getTime()); } catch (IOException|EndianUtils.BufferUnderrunException e) { } return ""; } }
header.lastModified = lastModified; header.numRecords = EndianUtils.readIntLE(is); header.numBytesInHeader = EndianUtils.readShortLE(is); header.numBytesInRecord = EndianUtils.readShortLE(is);
public String getFormattedDateTime() { //sometimes 12/31/1899 instead of 01/01/4713 BC. //http://stackoverflow.com/questions/20026154/convert-dbase-timestamp //TODO: add heuristic for deciding; //TODO: find example of file with time != 0 Calendar baseCalendar = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT); // baseCalendar.set(1899, 11, 31, 0, 0, 0); baseCalendar.set(-4712, 0, 1, 0, 0, 0); byte[] bytes = getBytes(); try (InputStream is = new ByteArrayInputStream(getBytes())) { int date = EndianUtils.readIntLE(is); int time = EndianUtils.readIntLE(is); baseCalendar.add(Calendar.DATE, date); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT); return df.format(baseCalendar.getTime()); } catch (IOException|EndianUtils.BufferUnderrunException e) { } return ""; } }
public String getFormattedDateTime() { //sometimes 12/31/1899 instead of 01/01/4713 BC. //http://stackoverflow.com/questions/20026154/convert-dbase-timestamp //TODO: add heuristic for deciding; //TODO: find example of file with time != 0 Calendar baseCalendar = GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT); // baseCalendar.set(1899, 11, 31, 0, 0, 0); baseCalendar.set(-4712, 0, 1, 0, 0, 0); byte[] bytes = getBytes(); try (InputStream is = new ByteArrayInputStream(getBytes())) { int date = EndianUtils.readIntLE(is); int time = EndianUtils.readIntLE(is); baseCalendar.add(Calendar.DATE, date); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ROOT); return df.format(baseCalendar.getTime()); } catch (IOException|EndianUtils.BufferUnderrunException e) { } return ""; } }
header.lastModified = lastModified; header.numRecords = EndianUtils.readIntLE(is); header.numBytesInHeader = EndianUtils.readShortLE(is); header.numBytesInRecord = EndianUtils.readShortLE(is);
header.lastModified = lastModified; header.numRecords = EndianUtils.readIntLE(is); header.numBytesInHeader = EndianUtils.readShortLE(is); header.numBytesInRecord = EndianUtils.readShortLE(is);