---
name: "pmLocaltime"
section: "3"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pmLocaltime"
---

# pmLocaltime(3)

convert the date and time for a reporting timezone

## NAME

**pmLocaltime** - convert the date and time for a reporting timezone

## C SYNOPSIS

**#include \<time.h\>**\
 **#include \<pcp/pmapi.h\>**

**struct tm \*pmLocaltime(const time\_t \****clock***, struct tm \****result***);**

**cc ... -lpcp**

## DESCRIPTION

**pmLocaltime** is very similar to [**localtime**(3)](/localtime/3.md), except the timezone used is the current \`\`reporting timezone'' (rather than the default **TZ** environment variable scheme), and the result is returned into a caller-declared buffer (rather than a private buffer).

Like [**localtime**(3)](/localtime/3.md) the time to be converted is passed via *clock*, and the *result* contains the components broken out in the elements of the *tm* struct.

**pmLocaltime** returns *result* as the value of the function.

The default current reporting timezone is as defined by the **TZ** environment variable, so **pmLocaltime** and [**localtime**(3)](/localtime/3.md) will initially produce a similar encoding of the date and time.

Use [**pmNewZone**(3)](/pmNewZone/3.md), [**pmNewContextZone**(3)](/pmNewContextZone/3.md) or [**pmUseZone**(3)](/pmUseZone/3.md) to establish a new current reporting timezone that will affect **pmLocaltime** but not [**localtime**(3)](/localtime/3.md).

## SEE ALSO

[**localtime**(3)](/localtime/3.md), [**PMAPI**(3)](/PMAPI/3.md), [**pmCtime**(3)](/pmCtime/3.md), [**pmGetConfig**(3)](/pmGetConfig/3.md), [**pmNewContextZone**(3)](/pmNewContextZone/3.md), [**pmNewZone**(3)](/pmNewZone/3.md), [**pmUseZone**(3)](/pmUseZone/3.md), [**pcp.conf**(5)](/pcp.conf/5.md) and [**pcp.env**(5)](/pcp.env/5.md).
