parseDateTime.js 536 B

12345678910111213
  1. // Dates in zip file entries are stored as DosDateTime
  2. // Spec is here: https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-dosdatetimetofiletime
  3. module.exports = function parseDateTime(date, time) {
  4. const day = date & 0x1F;
  5. const month = date >> 5 & 0x0F;
  6. const year = (date >> 9 & 0x7F) + 1980;
  7. const seconds = time ? (time & 0x1F) * 2 : 0;
  8. const minutes = time ? (time >> 5) & 0x3F : 0;
  9. const hours = time ? (time >> 11): 0;
  10. return new Date(Date.UTC(year, month-1, day, hours, minutes, seconds));
  11. };