Skip to content

Commit

Permalink
Minor tweaks to support both current and NextGen sites, fix a typo, m…
Browse files Browse the repository at this point in the history
…ake text more consistent.
  • Loading branch information
lsgunnlsgunn authored and jmcardon committed Dec 18, 2024
1 parent 59521e7 commit a836f86
Show file tree
Hide file tree
Showing 8 changed files with 130 additions and 9 deletions.
2 changes: 1 addition & 1 deletion docs/builtins/Time/add-time.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ To add `seconds` to a `time`, use the following syntax:

### Arguments

Use the following arguments to specify the *`time`* to which you want to add *`seconds`* using the `add-time` Pact function.
Use the following arguments to specify the `time` to which you want to add `seconds` using the `add-time` Pact function.

| Argument | Type | Description |
| --- | --- | --- |
Expand Down
2 changes: 1 addition & 1 deletion docs/builtins/Time/days.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## days

Use `days` to specify a number of days.
You can use this function in conjunctions with the `add-time` function to add days to a specified time.
You can use this function in conjunction with the `add-time` function to add a specified number of days to a specified time.

### Basic syntax

Expand Down
2 changes: 1 addition & 1 deletion docs/builtins/Time/diff-time.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Use `diff-time` to compute the difference between `time1` and `time2` in seconds

### Basic syntax

To compute the difference between two `tinme1` and `time2` in seconds, use the following syntax:
To compute the difference between `time1` and `time2` in seconds, use the following syntax:

```pact
(diff-time time1 time2)
Expand Down
53 changes: 53 additions & 0 deletions docs/builtins/Time/format-time.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,58 @@
Use `format-time` to format a `time` value using a specified `format`.
The `format-time` function is useful for converting time values to human-readable formats in Pact contracts.

The `parse-time` and `format-time` functions accept format codes that are derived from the formatting time `strftime` function time templates with some extensions.
You can use the following template specifiers that are introduced by using a single percentage (`%`) character to format time strings:

| Specifier | Description |
| :-------- | :---------- |
| `%a` | The abbreviated short name for the day of the week as specified for the current locale, for example,`"Sun"``"Sat"`. |
| `%A` | The full name for the day of the week as specified for the current locale, for example, `"Sunday"``"Saturday"`. |
| `%b` | The abbreviated month name as specified for the current locale, for example, `"Jan"``"Dec"`. |
| `%B` | The full month name as specified for the current locale, for example, `"January"``"December"`. |
| `%c` | The preferred calendar time representation as specified for the current locale, for example, `%a %b %e %H:%M:%S %Z %Y`.|
| `%C` | The century of the year with no padding.|
| `%d` | The day of the month as a decimal number zero-padded to two characters, for example, `"01"``"31"`.|
| `%D` | The date using the format `%m/%d/%y`.|
| `%e` | The day of the month as a decimal number space-padded to two characters, for example, `" 1"``"31"`.|
| `%f` | Century for the week date format with no padding.|
| `%F` | The date using the format `%Y-%m-%d` as specified in the ISO 8601 standard.|
| `%g` | The year corresponding to the ISO week number, without the century, zero-padded to two characters, for example, `"00"``"99"`.|
| `%G` | The year corresponding to the ISO week number with no padding.|
| `%h` | The abbreviated month name as specified for the current locale, for example, `"Jan"``"Dec"`. This format is the same as using the `%b` template.|
| `%H` | The hour of the day as a decimal number, using a 24-hour clock, zero-padded to two characters, for example, `"00"``"23"`.|
| `%I` | The hour of the day as a decimal number, using a 12-hour clock, zero-padded to two characters, for example, `"01"``"12"`.|
| `%j` | The day of the year as a decimal number, zero-padded to three characters, for example, `"001"``"366"`.|
| `%k` | The hour of the day as a decimal number, using a 24-hour clock, space-padded to two characters, for example, `" 0"``"23"`.|
| `%l` | The hour as a decimal number using a 12-hour clock, space-padded to two characters, for example, `" 1"``"12"`.|
| `%m` | The month of the year, zero-padded to two characters, for example, `"01"``"12"`.|
| `%M` | The minute of the hour, zero-padded to two characters, for example, `"00"``"59"`.|
| `%N` | Numeric representation of the time zone using the ISO 8601 standard, for example, `"-06:00"` or `"+01:00"`.|
| `%p` | The half of day representation of `"AM"` or `"PM"` or the corresponding strings specified for the current locale. Noon is treated as ‘PM’ and midnight as ‘AM’. If `"AM"` and `"PM"` aren't supported, the `%p` template returns an empty string.|
| `%P` | The half of day representation of `"AM"` or `"PM"` or the corresponding strings specified for the current locale, converted to lowercase, for example, `"am"` and `"pm"`. Noon is treated as ‘PM’ and midnight as ‘AM’. If `"am"` and `"pm"` aren't supported, the `%P` template returns an empty string.|
| `%Q` | The fraction of a second, up to six second decimal places, without trailing zeros. For a whole number of seconds, `%Q` produces an empty string.|
| `%r` | The complete calendar time including the AM/PM format as specified for the current locale, for example, `%I:%M:%S %p`.|
| `%R` | The hour and minute in decimal numbers using the format `%H:%M`.|
| `%s` | The number of whole seconds since the UNIX epoch (since 1970-01-01 00:00:00 UTC). For times before the UNIX epoch, this is a negative number. Note that in `%s.%q` and `%s%Q` formats, the decimals are positive, not negative. For example, 0.9 seconds before the UNIX epoch is formatted as `"-1.1"` with `%s%Q`.|
| `%S` | The seconds of a minute, zero-padded to two characters, for example, `"00"``"60"`.|
| `%T` | The time of day using the format `%H:%M:%S`.|
| `%u` | The day of the week as a number with Monday being 1, for example, `"1"``"7"`.|
| `%U` | The week number of the year as a number, starting with the first Sunday as the first day of the first week, zero-padded to two characters, for example, `"00"``"53"`.|
| `%v` | The microsecond of a second, zero-padded to six characters, for example, `"000000"``"999999"`.|
| `%V` | The week number as specified using the ISO 8601:1988 standard where weeks start with Monday and end with Sunday. zero-padded to two characters, for example,`"01"``"53"`.|
| `%w` | The day of the week as a number, starting with Sunday as 0, for example,`"0"` (= Sunday) – `"6"` (= Saturday).|
| `%W` | The week number of the year as a number (range 00 through 53), starting with the first Monday as the first day of the first week. zero-padded to two characters, for example, `"00"``"53"`.|
| `%x` | The preferred date representation as specified for the current `locale`, for example, `%m\/%d\/%y`.|
| `%X` | The preferred time of day representation as specified for the current locale, for example, `%H:%M:%S`.|
| `%y` | The year without a century as a number, zero-padded to two characters, for example, `"00"``"99"`.|
| `%Y` | The full year as a number with no padding.|
| `%z` | Numeric representation of the time zone using the RFC 822/ISO 8601:1988 standard, for example, `"-0600"` or `"+0100"`.|
| `%Z` | The time zone abbreviation or empty if the time zone can't be determined.|

Note that two percentage characters (`%%`) are interpretted as a literal percentage sign (`%`), not a time formatting template.
In addition, the template for picoseconds with zero padding (`%q`) doesn't work properly, so it's not included as a supported template for formatting time strings.

<!-- NEXT GEN DOCS
The following table provides a summary of common time formatting codes:
| Format | Purpose |
Expand All @@ -17,6 +69,7 @@ The following table provides a summary of common time formatting codes:
There are many other formatting options.
For example, you can replace the numeric representing the month of the year with the short or long name for the month.
For information about all of the formats supported, see [Time formats](/pact-5/Time/time-functions#time-formats).
-->

### Basic syntax

Expand Down
6 changes: 4 additions & 2 deletions docs/builtins/Time/hours.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
## hours
The `hours` function calculates a time duration in hours, which can be used with the `add-time` function to add a specific number of hours to a given time.

### Syntax
Use the `hours` function to calculate a time duration in hours.
You can use this function in combination with the `add-time` function to add a specific number of hours to a given time.

### Basic syntax

The syntax for the `hours` function is as follows:

Expand Down
6 changes: 4 additions & 2 deletions docs/builtins/Time/minutes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
## minutes
Use `minutes` to represent a duration of N minutes, primarily for use with the `add-time` function.

Use `minutes` to represent a duration of a specified number of minutes.
You can use this function in combination with the `add-time` function to add a specific number of minutes to a given time.

### Basic syntax

Expand All @@ -24,6 +26,6 @@ The `minutes` function returns the duration in decimal format.
The following example demonstrates the use of `minutes` in combination with `add-time` in the Pact REPL:

```pact
pact>(add-time (time "2016-07-22T12:00:00Z") (minutes 1))
pact> (add-time (time "2016-07-22T12:00:00Z") (minutes 1))
2016-07-22 12:01:00 UTC
```
56 changes: 55 additions & 1 deletion docs/builtins/Time/parse-time.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,59 @@
## parse-time

Use `parse-time` to construct a UTC formatted time string from an input time that uses the specified format.
Use `parse-time` to construct a UTC formatted time string from an input time that uses the specified format.

The `parse-time` and `format-time` functions accept format codes that are derived from the formatting time `strftime` function time templates with some extensions.
You can use the following template specifiers that are introduced by using a single percentage (`%`) character to format time strings:

| Specifier | Description |
| :-------- | :---------- |
| `%a` | The abbreviated short name for the day of the week as specified for the current locale, for example,`"Sun"``"Sat"`. |
| `%A` | The full name for the day of the week as specified for the current locale, for example, `"Sunday"``"Saturday"`. |
| `%b` | The abbreviated month name as specified for the current locale, for example, `"Jan"``"Dec"`. |
| `%B` | The full month name as specified for the current locale, for example, `"January"``"December"`. |
| `%c` | The preferred calendar time representation as specified for the current locale, for example, `%a %b %e %H:%M:%S %Z %Y`.|
| `%C` | The century of the year with no padding.|
| `%d` | The day of the month as a decimal number zero-padded to two characters, for example, `"01"``"31"`.|
| `%D` | The date using the format `%m/%d/%y`.|
| `%e` | The day of the month as a decimal number space-padded to two characters, for example, `" 1"``"31"`.|
| `%f` | Century for the week date format with no padding.|
| `%F` | The date using the format `%Y-%m-%d` as specified in the ISO 8601 standard.|
| `%g` | The year corresponding to the ISO week number, without the century, zero-padded to two characters, for example, `"00"``"99"`.|
| `%G` | The year corresponding to the ISO week number with no padding.|
| `%h` | The abbreviated month name as specified for the current locale, for example, `"Jan"``"Dec"`. This format is the same as using the `%b` template.|
| `%H` | The hour of the day as a decimal number, using a 24-hour clock, zero-padded to two characters, for example, `"00"``"23"`.|
| `%I` | The hour of the day as a decimal number, using a 12-hour clock, zero-padded to two characters, for example, `"01"``"12"`.|
| `%j` | The day of the year as a decimal number, zero-padded to three characters, for example, `"001"``"366"`.|
| `%k` | The hour of the day as a decimal number, using a 24-hour clock, space-padded to two characters, for example, `" 0"``"23"`.|
| `%l` | The hour as a decimal number using a 12-hour clock, space-padded to two characters, for example, `" 1"``"12"`.|
| `%m` | The month of the year, zero-padded to two characters, for example, `"01"``"12"`.|
| `%M` | The minute of the hour, zero-padded to two characters, for example, `"00"``"59"`.|
| `%N` | Numeric representation of the time zone using the ISO 8601 standard, for example, `"-06:00"` or `"+01:00"`.|
| `%p` | The half of day representation of `"AM"` or `"PM"` or the corresponding strings specified for the current locale. Noon is treated as ‘PM’ and midnight as ‘AM’. If `"AM"` and `"PM"` aren't supported, the `%p` template returns an empty string.|
| `%P` | The half of day representation of `"AM"` or `"PM"` or the corresponding strings specified for the current locale, converted to lowercase, for example, `"am"` and `"pm"`. Noon is treated as ‘PM’ and midnight as ‘AM’. If `"am"` and `"pm"` aren't supported, the `%P` template returns an empty string.|
| `%Q` | The fraction of a second, up to six second decimal places, without trailing zeros. For a whole number of seconds, `%Q` produces an empty string.|
| `%r` | The complete calendar time including the AM/PM format as specified for the current locale, for example, `%I:%M:%S %p`.|
| `%R` | The hour and minute in decimal numbers using the format `%H:%M`.|
| `%s` | The number of whole seconds since the UNIX epoch (since 1970-01-01 00:00:00 UTC). For times before the UNIX epoch, this is a negative number. Note that in `%s.%q` and `%s%Q` formats, the decimals are positive, not negative. For example, 0.9 seconds before the UNIX epoch is formatted as `"-1.1"` with `%s%Q`.|
| `%S` | The seconds of a minute, zero-padded to two characters, for example, `"00"``"60"`.|
| `%T` | The time of day using the format `%H:%M:%S`.|
| `%u` | The day of the week as a number with Monday being 1, for example, `"1"``"7"`.|
| `%U` | The week number of the year as a number, starting with the first Sunday as the first day of the first week, zero-padded to two characters, for example, `"00"``"53"`.|
| `%v` | The microsecond of a second, zero-padded to six characters, for example, `"000000"``"999999"`.|
| `%V` | The week number as specified using the ISO 8601:1988 standard where weeks start with Monday and end with Sunday. zero-padded to two characters, for example,`"01"``"53"`.|
| `%w` | The day of the week as a number, starting with Sunday as 0, for example,`"0"` (= Sunday) – `"6"` (= Saturday).|
| `%W` | The week number of the year as a number (range 00 through 53), starting with the first Monday as the first day of the first week. zero-padded to two characters, for example, `"00"``"53"`.|
| `%x` | The preferred date representation as specified for the current `locale`, for example, `%m\/%d\/%y`.|
| `%X` | The preferred time of day representation as specified for the current locale, for example, `%H:%M:%S`.|
| `%y` | The year without a century as a number, zero-padded to two characters, for example, `"00"``"99"`.|
| `%Y` | The full year as a number with no padding.|
| `%z` | Numeric representation of the time zone using the RFC 822/ISO 8601:1988 standard, for example, `"-0600"` or `"+0100"`.|
| `%Z` | The time zone abbreviation or empty if the time zone can't be determined.|

Note that two percentage characters (`%%`) are interpreted as a literal percentage sign (`%`), not a time formatting template.
In addition, the template for picoseconds with zero padding (`%q`) doesn't work properly, so it's not included as a supported template for formatting time strings.

<!-- NEXT GEN DOCS
The following table provides a summary of common time formatting codes:
| Format | Purpose |
Expand All @@ -13,6 +66,7 @@ The following table provides a summary of common time formatting codes:
| %S | Second of the minute, zero-padded to two characters, "00"–"60" |
For more information about time formats and specifiers, see [Time formats](/pact-5/Time/time-functions#time-formats).
-->

### Basic syntax

Expand Down
12 changes: 11 additions & 1 deletion docs/builtins/Time/time.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
## time
The `time` function constructs a time object from a UTC value using the ISO8601 format `(%Y-%m-%dT%H:%M:%SZ)`.

Use the `time` function to construct a time object from a UTC value using the ISO 8601 standard Universal Time Coordinated (UTC) date time format:

```text
%Y-%m-%dT%H:%M:%SZ
```

This format is the default time format in Pact for all time-related functions.
Internally, the time object supports up to microsecond resolution.
However, the values returned from the Pact interpreter as JSON are be serialized using the default format.
If you need higher resolution, you can explicitly format times with the `%v` template and related codes.

### Basic syntax

Expand Down

0 comments on commit a836f86

Please sign in to comment.