---
name: "__pmconverttime"
section: "3"
platform: "linux"
package: "libpcp3-dev"
version: "4.3.2+really4.3.1-0.1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://carta.tech/man/__pmConvertTime"
---

# \_\_pmconverttime(3)

convert tm structure to timeval structure

Part of [\_\_pmConvertTime(3)](/man/__pmConvertTime/3.md).

## NAME

**\_\_pmConvertTime** - convert **tm** structure to **timeval** structure

## C SYNOPSIS

**#include "pmapi.h"**\
 **#include "libpcp.h"**

**int \_\_pmConvertTime(struct tm \****tmin***, struct timeval \****origin***, struct timeval \****rslt***);**

**cc ... -lpcp**

## CAVEAT

This documentation is intended for internal Performance Co-Pilot (PCP) developer use.

These interfaces are not part of the PCP APIs that are guaranteed to remain fixed across releases, and they may not work, or may provide different semantics at some point in the future.

## DESCRIPTION

**\_\_pmConvertTime** accepts a **tm** structure that has been filled in by [**\_\_pmParseCtime**(3)](/man/__pmParseCtime/3.md) and a reference time point **origin**, and fills in the given **rslt** structure with the time the user meant when he specified a partial **ctime** or positive or negative time **interval**.

Typically, the argument **origin** is the start time for a set of  PCP archive logs, unless the user specified a negative **interval** offset, in which case it is the end time of the log.

**\_\_pmConvertTime** returns 0 if successful.   It returns -1 and writes an error message to **stderr**, if an error is detected.

Use [**pmNewZone**(3)](/man/pmNewZone/3.md), [**pmNewContextZone**(3)](/man/pmNewContextZone/3.md) or [**pmUseZone**(3)](/man/pmUseZone/3.md) to establish a new current timezone that will effect **\_\_pmConvertTime**.

## SEE ALSO

[**PMAPI**(3)](/man/PMAPI/3.md), [**pmNewContextZone**(3)](/man/pmNewContextZone/3.md), [**pmNewZone**(3)](/man/pmNewZone/3.md), [**pmParseInterval**(3)](/man/pmParseInterval/3.md), [**pmParseTimeWindow**(3)](/man/pmParseTimeWindow/3.md), [**pmUseZone**(3)](/man/pmUseZone/3.md), [**\_\_pmParseCtime**(3)](/man/__pmParseCtime/3.md) and [**\_\_pmParseTime**(3)](/man/__pmParseTime/3.md).
