# ZipUtil (Apache Commons Compress 1.13 API)

org.apache.commons.compress.archivers.zip

## Class ZipUtil

- java.lang.Object
- - org.apache.commons.compress.archivers.zip.ZipUtil

-     public abstract class ZipUtil
      extends Object

  Utility class for handling DOS and Java time conversions.
  This class is immutable

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ZipUtil()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static long` | `adjustToLong(int i)` Assumes a negative integer really is a positive integer that has wrapped around and re-creates the original value.
    `static long` | `dosToJavaTime(long dosTime)` Converts DOS time to Java time (number of milliseconds since epoch).
    `static Date` | `fromDosTime(ZipLong zipDosTime)` Convert a DOS date/time field to a Date object.
    `static byte[]` | `reverse(byte[] array)` Reverses a byte[] array.
    `static int` | `signedByteToUnsignedInt(byte b)` Converts a signed byte into an unsigned integer representation (e.g., -1 becomes 255).
    `static ZipLong` | `toDosTime(Date time)` Convert a Date object to a DOS date/time field.
    `static byte[]` | `toDosTime(long t)` Convert a Date object to a DOS date/time field.
    `static void` | `toDosTime(long t, byte[] buf, int offset)` Convert a Date object to a DOS date/time field.
    `static byte` | `unsignedIntToSignedByte(int i)` Converts an unsigned integer to a signed byte (e.g., 255 becomes -1).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ZipUtil

          public ZipUtil()

  - ### Method Detail

    - #### toDosTime

          public static ZipLong toDosTime(Date time)

      Convert a Date object to a DOS date/time field.
      Parameters:
        `time` - the `Date` to convert
      Returns:
        the date as a `ZipLong`

    - #### toDosTime

          public static byte[] toDosTime(long t)

      Convert a Date object to a DOS date/time field.

      Stolen from InfoZip's `fileio.c`

      Parameters:
        `t` - number of milliseconds since the epoch
      Returns:
        the date as a byte array

    - #### toDosTime

          public static void toDosTime(long t,
                       byte[] buf,
                       int offset)

      Convert a Date object to a DOS date/time field.

      Stolen from InfoZip's `fileio.c`

      Parameters:
        `t` - number of milliseconds since the epoch
        `buf` - the output buffer
        `offset` - The offset within the output buffer of the first byte to be written. must be non-negative and no larger than `buf.length-4`

    - #### adjustToLong

          public static long adjustToLong(int i)

      Assumes a negative integer really is a positive integer that has wrapped around and re-creates the original value.
      Parameters:
        `i` - the value to treat as unsigned int.
      Returns:
        the unsigned int as a long.

    - #### reverse

          public static byte[] reverse(byte[] array)

      Reverses a byte[] array. Reverses in-place (thus provided array is mutated), but also returns same for convenience.
      Parameters:
        `array` - to reverse (mutated in-place, but also returned for convenience).
      Returns:
        the reversed array (mutated in-place, but also returned for convenience).
      Since:
        1.5

    - #### signedByteToUnsignedInt

          public static int signedByteToUnsignedInt(byte b)

      Converts a signed byte into an unsigned integer representation (e.g., -1 becomes 255).
      Parameters:
        `b` - byte to convert to int
      Returns:
        int representation of the provided byte
      Since:
        1.5

    - #### unsignedIntToSignedByte

          public static byte unsignedIntToSignedByte(int i)

      Converts an unsigned integer to a signed byte (e.g., 255 becomes -1).
      Parameters:
        `i` - integer to convert to byte
      Returns:
        byte representation of the provided int
      Throws:
        `IllegalArgumentException` - if the provided integer is not inside the range [0,255].
      Since:
        1.5

    - #### fromDosTime

          public static Date fromDosTime(ZipLong zipDosTime)

      Convert a DOS date/time field to a Date object.
      Parameters:
        `zipDosTime` - contains the stored DOS time.
      Returns:
        a Date instance corresponding to the given time.

    - #### dosToJavaTime

          public static long dosToJavaTime(long dosTime)

      Converts DOS time to Java time (number of milliseconds since epoch).
      Parameters:
        `dosTime` - time to convert
      Returns:
        converted time

Copyright © 2016 The Apache Software Foundation. All rights reserved.