RelativeInstantLocalizer

class RelativeInstantLocalizer(options: RelativeInstantOptions = RelativeInstantOptions(), locale: PlatformLocale = getDefaultLocale()) : PolyglotReferenceDateTimeLocalizer<Instant> (source)

Localizes an Instant relative to another one.

This class is a simple convenience over RelativeDurationLocalizer, simply calculating the diff and forwarding the localization request to it. As this implements PolyglotReferenceDateTimeLocalizer, this allows to use localizeAsFlow.

For this reason, the options required here are identical to RelativeDurationLocalizer.

Create once and re-use for localizing multiple values with the same options. Use Instant.localizeRelative or Instant.localizeRelativeAsFlow for one-off localizations.

Examples:

  • 10 minutes ago

  • in 1 hour

  • 4h ago

  • 4 hr. ago

  • in 2 days

See also

Constructors

Link copied to clipboard
constructor(options: RelativeInstantOptions = RelativeInstantOptions(), locale: PlatformLocale = getDefaultLocale())

Functions

Link copied to clipboard
open override fun localize(value: Instant, reference: Zoned<Instant>): TickingValue<String>
fun localize(value: Instant, reference: Instant): TickingValue<String>
Link copied to clipboard
fun <T, R> PolyglotReferenceValueLocalizer<T, R>.localizeAsFlow(value: T, clock: Flow<ClockWrapper> = SYSTEM_CLOCK, timeZone: Flow<TimeZone> = SYSTEM_TIMEZONE, maxTick: Duration? = null): Flow<R>

Localizes value by using the given clock's Clock.now and timeZone flows as a reference point and returns a Flow that emits updated values based on the underlying TickingValue.nextTick. This function assumes that each Clock emitted by the clock flow moves forward linearly.

Link copied to clipboard
fun <T, R> PolyglotReferenceValueLocalizer<T, R>.localizeNow(value: T, clock: Clock = Clock.System, timeZone: TimeZone = TimeZone.currentSystemDefault()): TickingValue<R>

Localizes value by using the given clock's Clock.now and timeZone as a reference point, rather than passing the reference explicitly.

Link copied to clipboard

Returns a new PolyglotReferenceValueLocalizer that localizes the received value using this localizer, calls map, and returns whatever TickingValue the mapping function returns.

Link copied to clipboard