Sending Timestamps With and Without "Z"
This article explains what the Z suffix means in a datetime value, how HighByte documentation uses it, and why it matters when you build timestamps for reads, writes, and expressions.
What Z Means in DateTime
In the ISO 8601 standard, the letter "Z" is used as a time zone designator for UTC. Datetime values in the ISO 8601 format need to be considered within a number of places in Intelligence Hub. When referencing the User Guide, one example is the PI System User Guide, which says that absolute times must include a Z at the end to be treated as UTC. Another example is in the Status and Metrics User Guide, which also states that System.Internal.DateTime is the current UTC time of the server in ISO 8601 UTC format.
At a technical level, this means the Z is not just extra text at the end of the timestamp. In the Intelligence Hub, it tells the system that the datetime value is in UTC, not an unspecified datetime.
Where HighByte Uses UTC DateTime Values
This UTC behavior shows up in more than one part of the product.
As stated, the PI System User Guide states that absolute times use Z to be treated as UTC, and it also says that writing the timestamps must be in ISO 8601 format. Furthermore, the Aggregate condition User Guide also shows examples using static UTC ISO 8601 values such as 2022-03-29T20:59:45Z.
Other HighByte connections follow this same pattern. The InfluxDB output documentation states that when you set a timestamp, you can provide a UTC ISO 8601 timestamp or a UTC epoch value in milliseconds. The sparkplug output documentation says it's a timestamp field that accepts an ISO8601 datetime string in UTC format.
Consider referencing the User Guide for Intelligence Hub Connector for specifics on how Intelligence Hub and the connecting system might handle timestamps.
What This Means When You Build a Timestamp
If the date time value is meant to be UTC, include the UTC marker in the timestamp format used by the target settings. For example, a UTC datetime value would look something like this: 2026-03-09T14:30:00Z. This aligns with the documented patterns that Intelligence Hub supports for UTC ISO 8601 timestamps.
If leaving the date time value as an unspecified timezone, the UTC marker can be omitted. An unspecified datetime without the UTC marker would look like: 2026-03-09T14:30:00. Note that an unspecified datetime will typically be interpreted as representing the local time zone. When data flows traverse time zones, this can result in unexpected behaviors.
The important point is that the timestamp still needs to match the format expected by the specific stage or connection. For example, PI writes require an ISO 8601 timestamp when you set the timestamp directly.
Important: Use Z when the timestamp is meant to be UTC
References:
- Status & Metrics (User Guide)
- PI System (User Guide)
- Aggregate (User Guide)