Rego Built-in Function: time.now_ns
time.now_ns
is Rego's built-in function that returns the current time
in nanoseconds since the Unix epoch. This is useful for comparing
timestamps or calculating time differences.
Examples
Check if a time is in the past
In this example, we see compare an RFC3339 timestamp with the current time to determine if the timestamp is in the past.
If you have a time in a different format, you might want to use
time.parse_ns
function to convert it to nanoseconds before comparing it with the current time.
Observe that in Rego, comparing time can be done using the <
and >
operators
just like comparing numbers and times in many other languages.
policy.rego
package play
import rego.v1
parsed_time := time.parse_rfc3339_ns(input.time)
in_past if parsed_time < time.now_ns()
input.json
{
"time": "2024-07-02T13:14:46.878235008Z"
}
data.json
{}
Rule | Output Value |
---|---|
in_past | true |