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

# pmNewContextZone(3)

establish a reporting timezone based on a PMAPI context

## NAME

**pmNewContextZone** - establish a reporting timezone based on a PMAPI context

## C SYNOPSIS

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

**int pmNewContextZone(void);**

**cc ... -lpcp**

## DESCRIPTION

The current reporting timezone affects the timezone used by [**pmCtime**(3)](/pmCtime/3.md) and [**pmLocaltime**(3)](/pmLocaltime/3.md).

If the current PMAPI context is an archive, **pmNewContextZone** uses the timezone from the archive label record to set the current reporting timezone.

If the current PMAPI context corresponds to a host source of metrics, **pmNewContextZone** executes a [**pmFetch**(3)](/pmFetch/3.md) to retrieve the value for the metric *pmcd.timezone* and uses that to set the current reporting timezone.

In both cases, **pmNewContextZone** returns a value to identify the current reporting timezone that may be used in a subsequent call to [**pmUseZone**(3)](/pmUseZone/3.md) to restore this reporting timezone.

## DIAGNOSTICS

- **PM\_ERR\_NOCONTEXT**

  the current PMAPI context is not valid

- other

  a return value less than zero indicates a fatal error from a system call, most likely [**malloc**(3)](/malloc/3.md)

## SEE ALSO

[**PMAPI**(3)](/PMAPI/3.md), [**pmCtime**(3)](/pmCtime/3.md), [**pmFetch**(3)](/pmFetch/3.md), [**pmGetConfig**(3)](/pmGetConfig/3.md), [**pmLocaltime**(3)](/pmLocaltime/3.md), [**pmNewContext**(3)](/pmNewContext/3.md), [**pmNewZone**(3)](/pmNewZone/3.md), [**pmUseZone**(3)](/pmUseZone/3.md), [**pmWhichZone**(3)](/pmWhichZone/3.md), [**pcp.conf**(5)](/pcp.conf/5.md), [**pcp.env**(5)](/pcp.env/5.md) and [**environ**(7)](/environ/7.md).
