Hyperlinkv0.8.0-beta.28

DateTime

DateTime.withCurrentZoneNamedconsteffect/DateTime.ts:2012
(zone: string): <A, E, R>(
  effect: Effect.Effect<A, E, R>
) => Effect.Effect<
  A,
  E | IllegalArgumentError,
  Exclude<R, CurrentTimeZone>
>
<A, E, R>(effect: Effect.Effect<A, E, R>, zone: string): Effect.Effect<
  A,
  E | IllegalArgumentError,
  Exclude<R, CurrentTimeZone>
>

Provides the CurrentTimeZone to an effect using an IANA time zone identifier.

Details

If the time zone is invalid, it will fail with an IllegalArgumentError.

Example (Providing a named time zone)

import { DateTime, Effect } from "effect"

Effect.gen(function*() {
  // will use the "Europe/London" time zone
  const now = yield* DateTime.nowInCurrentZone
}).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
current time zone
export const withCurrentZoneNamed: {
  (zone: string): <A, E, R>(
    effect: Effect.Effect<A, E, R>
  ) => Effect.Effect<A, E | IllegalArgumentError, Exclude<R, CurrentTimeZone>>
  <A, E, R>(
    effect: Effect.Effect<A, E, R>,
    zone: string
  ): Effect.Effect<A, E | IllegalArgumentError, Exclude<R, CurrentTimeZone>>
} = dual(
  2,
  <A, E, R>(
    effect: Effect.Effect<A, E, R>,
    zone: string
  ): Effect.Effect<A, E | IllegalArgumentError, Exclude<R, CurrentTimeZone>> =>
    Effect.provideServiceEffect(effect, CurrentTimeZone, zoneMakeNamedEffect(zone))
)