---
name: "zip_file_set_dostime"
section: "3"
platform: "linux"
package: "libzip"
version: "1.11.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/zip_file_set_dostime"
---

# zip\_file\_set\_dostime(3)

set last modification time (mtime) for file in zip

## NAME

**zip\_file\_set\_dostime**, **zip\_file\_set\_mtime** – set last modification time (mtime) for file in zip

## LIBRARY

libzip (-lzip)

## SYNOPSIS

**#include \<zip.h\>**

*int*\

**zip\_file\_set\_dostime**(*zip\_t \*archive*, *zip\_uint64\_t index*, *zip\_uint16\_t dostime*, *zip\_uint16\_t dosdate*, *zip\_flags\_t flags*);

*int*\

**zip\_file\_set\_mtime**(*zip\_t \*archive*, *zip\_uint64\_t index*, *time\_t mtime*, *zip\_flags\_t flags*);

## DESCRIPTION

The **zip\_file\_set\_mtime**() function sets the last modification time (mtime) for the file at position *index* in the zip archive to *mtime*. Currently, no support for any *flags* is implemented.

In the zip archive, the time and date are saved as two 16-bit integers. To set the values directly, call the **zip\_file\_set\_dostime**() function. The values of the time bytes are defined as follows:

- 0-4

  seconds divided by two (1-2 = 1, 3-4 = 2, ...)

- 5-10

  minute (0-59)

- 11-15

  hour (0-23)

The values of the date bytes are defined as follows:

- 0-4

  day of the month (1-31)

- 5-8

  month (January = 1, February = 2, ...)

- 9-15

  year offset from 1980 (1980 = 0, 1981 = 1, ...)

## RETURN VALUES

Upon successful completion 0 is returned. Otherwise, -1 is returned and the error information in *archive* is set to indicate the error.

## ERRORS

**zip\_file\_set\_dostime**() and **zip\_file\_set\_mtime**() fail if:

- \[ZIP\_ER\_INVAL\]

  *index* is not a valid file index in *archive*.

- \[ZIP\_ER\_MEMORY\]

  Required memory could not be allocated.

- \[ZIP\_ER\_OPNOTSUPP\]

  Traditional PKWare encryption uses the file's mtime, therefore it cannot be changed without re-encrypting the data.

- \[ZIP\_ER\_RDONLY\]

  The *archive* was opened in read-only mode.

## SEE ALSO

[libzip(3)](/libzip/3.md), [zip\_stat(3)](/zip_stat/3.md)

## HISTORY

**zip\_file\_set\_mtime**() was added in libzip 1.0. **zip\_file\_set\_dostime**() was added in libzip 1.6.

## AUTHORS

Dieter Baron ⟨*dillo@nih.at*⟩ and Thomas Klausner ⟨*wiz@gatalith.at*⟩

## CAVEATS

Following historical practice, the **zip\_file\_set\_mtime**() function translates the time from the zip archive into the local time zone. If you want to avoid this, use the **zip\_file\_set\_dostime**() function instead.
