public void setTimestamp(java.io.RandomAccessFile ff) //throws tinySQLException { try { java.util.Calendar cal = java.util.Calendar.getInstance(); cal.setTime(new java.util.Date()); int dd = cal.get(java.util.Calendar.DAY_OF_MONTH); int mm = cal.get(java.util.Calendar.MONTH) + 1; int yy = cal.get(java.util.Calendar.YEAR); yy = yy % 100; // Y2K problem: only 2 digits ff.seek(DATE_INDEX); ff.write(yy); ff.write(mm); ff.write(dd); } catch (Exception e) { throw new TinySQLException(e.getMessage()); } }
/** * Convert a Date object to a DOS date/time field. * * <p>Stolen from InfoZip's <code>fileio.c</code></p> * @param t number of milliseconds since the epoch * @return the date as a byte array */ public static byte[] toDosTime(long t) { java.util.Calendar c = java.util.Calendar.getInstance(); c.setTimeInMillis(t); int year = c.get(java.util.Calendar.YEAR); if (year < 1980) { return(copy(DOS_TIME_MIN)); // stop callers from changing the array } int month = c.get(java.util.Calendar.MONTH) + 1; long value = ((year - 1980) << 25) | (month << 21) | (c.get(java.util.Calendar.DAY_OF_MONTH) << 16) | (c.get(java.util.Calendar.HOUR_OF_DAY) << 11) | (c.get(java.util.Calendar.MINUTE) << 5) | (c.get(java.util.Calendar.SECOND) >> 1); return(ZipLong.getBytes(value)); }