<A, B>(options: {
readonly onUtc: (_: Utc) => A
readonly onZoned: (_: Zoned) => B
}): (self: DateTime) => A | B
<A, B>(
self: DateTime,
options: {
readonly onUtc: (_: Utc) => A
readonly onZoned: (_: Zoned) => B
}
): A | BPattern match on a DateTime to handle Utc and Zoned cases differently.
Example (Pattern matching DateTime variants)
import { DateTime } from "effect"
const dt1 = DateTime.makeUnsafe("2024-01-01T12:00:00Z") // Utc
const dt2 = DateTime.makeZonedUnsafe("2024-06-15T14:30:00Z", {
timeZone: "Europe/London"
}) // Zoned
const result1 = DateTime.match(dt1, {
onUtc: (utc) => `UTC: ${DateTime.formatIso(utc)}`,
onZoned: (zoned) => `Zoned: ${DateTime.formatIsoZoned(zoned)}`
})
const result2 = DateTime.match(dt2, {
onUtc: (utc) => `UTC: ${DateTime.formatIso(utc)}`,
onZoned: (zoned) => `Zoned: ${DateTime.formatIsoZoned(zoned)}`
})
console.log(result1) // "UTC: 2024-01-01T12:00:00.000Z"
console.log(result2) // "Zoned: 2024-06-15T15:30:00.000+01:00[Europe/London]"mapping
Source effect/DateTime.ts:224310 lines
export const const match: {
<A, B>(options: {
readonly onUtc: (_: Utc) => A
readonly onZoned: (_: Zoned) => B
}): (self: DateTime) => A | B
<A, B>(
self: DateTime,
options: {
readonly onUtc: (_: Utc) => A
readonly onZoned: (_: Zoned) => B
}
): A | B
}
Pattern match on a DateTime to handle Utc and Zoned cases differently.
Example (Pattern matching DateTime variants)
import { DateTime } from "effect"
const dt1 = DateTime.makeUnsafe("2024-01-01T12:00:00Z") // Utc
const dt2 = DateTime.makeZonedUnsafe("2024-06-15T14:30:00Z", {
timeZone: "Europe/London"
}) // Zoned
const result1 = DateTime.match(dt1, {
onUtc: (utc) => `UTC: ${DateTime.formatIso(utc)}`,
onZoned: (zoned) => `Zoned: ${DateTime.formatIsoZoned(zoned)}`
})
const result2 = DateTime.match(dt2, {
onUtc: (utc) => `UTC: ${DateTime.formatIso(utc)}`,
onZoned: (zoned) => `Zoned: ${DateTime.formatIsoZoned(zoned)}`
})
console.log(result1) // "UTC: 2024-01-01T12:00:00.000Z"
console.log(result2) // "Zoned: 2024-06-15T15:30:00.000+01:00[Europe/London]"
match: {
<function (type parameter) A in <A, B>(options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): (self: DateTime) => A | B
A, function (type parameter) B in <A, B>(options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): (self: DateTime) => A | B
B>(options: {
readonly onUtc: (_: Utc) => A
readonly onZoned: (_: Zoned) => B
}
options: {
readonly onUtc: (_: Utc) => AonUtc: (_: Utc(parameter) _: {
_tag: "Utc";
epochMilliseconds: number;
partsUtc: DateTime.PartsWithWeekday | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
_: Utc) => function (type parameter) A in <A, B>(options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): (self: DateTime) => A | B
A
readonly onZoned: (_: Zoned) => BonZoned: (_: Zoned(parameter) _: {
_tag: "Zoned";
epochMilliseconds: number;
zone: TimeZone;
adjustedEpochMilliseconds: number | undefined;
partsAdjusted: DateTime.PartsWithWeekday | undefined;
partsUtc: DateTime.PartsWithWeekday | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
_: Zoned) => function (type parameter) B in <A, B>(options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): (self: DateTime) => A | B
B
}): (self: DateTimeself: type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime) => function (type parameter) A in <A, B>(options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): (self: DateTime) => A | B
A | function (type parameter) B in <A, B>(options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): (self: DateTime) => A | B
B
<function (type parameter) A in <A, B>(self: DateTime, options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): A | B
A, function (type parameter) B in <A, B>(self: DateTime, options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): A | B
B>(self: DateTimeself: type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime, options: {
readonly onUtc: (_: Utc) => A
readonly onZoned: (_: Zoned) => B
}
options: {
readonly onUtc: (_: Utc) => AonUtc: (_: Utc(parameter) _: {
_tag: "Utc";
epochMilliseconds: number;
partsUtc: DateTime.PartsWithWeekday | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
_: Utc) => function (type parameter) A in <A, B>(self: DateTime, options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): A | B
A
readonly onZoned: (_: Zoned) => BonZoned: (_: Zoned(parameter) _: {
_tag: "Zoned";
epochMilliseconds: number;
zone: TimeZone;
adjustedEpochMilliseconds: number | undefined;
partsAdjusted: DateTime.PartsWithWeekday | undefined;
partsUtc: DateTime.PartsWithWeekday | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
_: Zoned) => function (type parameter) B in <A, B>(self: DateTime, options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): A | B
B
}): function (type parameter) A in <A, B>(self: DateTime, options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): A | B
A | function (type parameter) B in <A, B>(self: DateTime, options: {
readonly onUtc: (_: Utc) => A;
readonly onZoned: (_: Zoned) => B;
}): A | B
B
} = import InternalInternal.const match: {
<A, B>(options: {
readonly onUtc: (_: DateTime.Utc) => A
readonly onZoned: (_: DateTime.Zoned) => B
}): (self: DateTime.DateTime) => A | B
<A, B>(
self: DateTime.DateTime,
options: {
readonly onUtc: (_: DateTime.Utc) => A
readonly onZoned: (_: DateTime.Zoned) => B
}
): A | B
}
match