lowerBin
lowerBin
returns a date-time value, which is at the starting (lower) end of a time range defined by the interval. For example, calculating the lower bin of a time given a 15-minute interval value would return the date-time value for the start of the fifteen-minute window (00-15, 15-30, 30-45, 45-60) that contains the input date-time.
Syntax
lowerBin(instant, intervalNanos)
lowerBin(instant, interval)
lowerBin(dateTime, intervalNanos)
lowerBin(dateTime, interval)
lowerBin(instant, intervalNanos, offset)
lowerBin(instant, interval, offset)
lowerBin(dateTime, intervalNanos, offset)
lowerBin(dateTime, interval, offset)
Parameters
Parameter | Type | Description |
---|---|---|
instant | Instant | The date-time for which to evaluate the start of the containing window. |
dateTime | ZonedDateTime | The date-time for which to evaluate the start of the containing window. |
intervalNanos | long | The time interval represented as nanoseconds. If this parameter is used, the offset parameter must also be in nanoseconds. |
interval | Duration | The time interval represented as a Duration. If this parameter is used, the offset parameter must also be a Duration. |
offset | long | The window start offset in nanoseconds. For example, a value of MINUTE would offset all windows by one minute. |
offset | Duration | The window start offset as a Duration. For example, a value of "PT1M" would offset all windows by one minute. |
Returns
A date-time representing the start of the window.
Example
The following example converts a date-time to the lower end of a 15-minute interval. Output is shown for no offset, and an offset of 2 minutes.
import io.deephaven.time.DateTimeUtils
datetime = parseInstant("2020-01-01T00:35:00 ET")
nanos_bin = MINUTE * 15
nanos_offset = MINUTE * 2
duration_bin = parseDuration("PT15M")
duration_offset = parseDuration("PT2M")
// no offset
result1 = DateTimeUtils.lowerBin(datetime, nanos_bin)
println result1
// offset of two minutes
result2 = DateTimeUtils.lowerBin(datetime, nanos_bin, nanos_offset)
println result2
// repeat result2, but with duration types
result2_durations = DateTimeUtils.lowerBin(datetime, duration_bin, duration_offset)
println result2_durations