This module contains functions for creating and manipulating dates.

To use this module, you must import it to your DataWeave code, for example, by adding the line import * from dw::core::Dates to the header of your DataWeave script.

Functions

atBeginningOfDay

atBeginningOfDay(dateTime: DateTime): DateTime

Returns a new DateTime value that changes the Time value in the input to the beginning of the specified day.

The hours, minutes, and seconds in the input change to 00:00:00.

Parameters
Name Description

dateTime

The DateTime value to reference.

Example

This example changes the Time value within the DateTime input to the beginning of the specified day.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  "atBeginningOfDayDateTime": atBeginningOfDay(|2020-10-06T18:23:20.351-03:00|)
}
Output
1
2
3
{
  "atBeginningOfDayDateTime": "2020-10-06T00:00:00-03:00"
}

atBeginningOfDay(localDateTime: LocalDateTime): LocalDateTime

Returns a new LocalDateTime value that changes the Time value within the input to the start of the specified day.

The hours, minutes, and seconds in the input change to 00:00:00.

Parameters
Name Description

localDateTime

The LocalDateTime value to reference.

Example

This example changes the Time value within the LocalDateTime input to the beginning of the specified day.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  "atBeginningOfDayLocalDateTime": atBeginningOfDay(|2020-10-06T18:23:20.351|)
}
Output
1
2
3
{
  "atBeginningOfDayLocalDateTime": "2020-10-06T00:00:00"
}

atBeginningOfHour

atBeginningOfHour(dateTime: DateTime): DateTime

Returns a new DateTime value that changes the Time value in the input to the beginning of the specified hour.

The minutes and seconds in the input change to 00:00.

Parameters
Name Description

dateTime

The DateTime value to reference.

Example

This example changes the Time value within the DateTime input to the beginning of the specified hour.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
   "atBeginningOfHourDateTime": atBeginningOfHour(|2020-10-06T18:23:20.351-03:00|)
}
Output
1
2
3
{
 "atBeginningOfHourDateTime": "2020-10-06T18:00:00-03:00"
}

atBeginningOfHour(localDateTime: LocalDateTime): LocalDateTime

Returns a new LocalDateTime value that changes the Time value in the input to the beginning of the specified hour.

The minutes and seconds in the input change to 00:00.

Parameters
Name Description

localDateTime

The LocalDateTime value to reference.

Example

This example changes the Time value within the LocalDateTime input to the beginning of the specified hour.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
   "atBeginningOfHourLocalDateTime": atBeginningOfHour(|2020-10-06T18:23:20.351|)
}
Output
1
2
3
{
 "atBeginningOfHourLocalDateTime": "2020-10-06T18:00:00"
}

atBeginningOfHour(localTime: LocalTime): LocalTime

Returns a new LocalTime value that changes its value in the input to the beginning of the specified hour.

The minutes and seconds in the input change to 00:00.

Parameters
Name Description

localTime

The LocalTime value to reference.

Example

This example changes the LocalTime value to the beginning of the specified hour.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
   "atBeginningOfHourLocalTime": atBeginningOfHour(|18:23:20.351|)
}
Output
1
2
3
{
 "atBeginningOfHourLocalTime": "18:00:00"
}

atBeginningOfHour(time: Time): Time

Returns a new Time value that changes the input value to the beginning of the specified hour.

The minutes and seconds in the input change to 00:00.

Parameters
Name Description

time

The Time value to reference.

Example

This example changes the Time value to the beginning of the specified hour.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
   "atBeginningOfHourTime": atBeginningOfHour(|18:23:20.351-03:00|)
}
Output
1
2
3
{
 "atBeginningOfHourTime":  "18:00:00-03:00"
}

atBeginningOfMonth

atBeginningOfMonth(dateTime: DateTime): DateTime

Returns a new DateTime value that changes the Day value from the input to the first day of the specified month. It also sets the Time value to 00:00:00.

The day and time in the input changes to 01T00:00:00.

Parameters
Name Description

dateTime

The DateTime value to reference.

Example

This example changes the Day value within the DateTime input to the first day of the specified month and sets the Time value to 00:00:00.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  "atBeginningOfMonthDateTime": atBeginningOfMonth(|2020-10-06T18:23:20.351-03:00|)
}
Output
1
2
3
{
  "atBeginningOfMonthDateTime": "2020-10-01T00:00:00-03:00"
}

atBeginningOfMonth(localDateTime: LocalDateTime): LocalDateTime

Returns a new LocalDateTime value that changes the Day and LocalTime values from the input to the beginning of the specified month.

The day and time in the input changes to 01T00:00:00.

Parameters
Name Description

localDateTime

The LocalDateTime value to reference.

Example

This example changes the Day and LocalTime values within the LocalDateTime input to the beginning of the specified month.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
 "atBeginningOfMonthLocalDateTime": atBeginningOfMonth(|2020-10-06T18:23:20.351|)
}
Output
1
2
3
{
  "atBeginningOfMonthLocalDateTime": "2020-10-01T00:00:00"
}

atBeginningOfMonth(date: Date): Date

Returns a new Date value that changes the Day value from the input to the first day of the specified month.

The day in the input changes to 01.

Parameters
Name Description

date

The Date value to reference.

Example

This example changes the Day value within the Date input to the first day of the specified month.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  atBeginningOfMonthDate: atBeginningOfMonth(|2020-10-06|)
}
Output
1
2
3
{
  "atBeginningOfMonthDate": "2020-10-01"
}

atBeginningOfWeek

atBeginningOfWeek(dateTime: DateTime): DateTime

Returns a new DateTime value that changes the Day and Time values from the input to the beginning of the first day of the specified week.

The function treats Sunday as the first day of the week.

Parameters
Name Description

dateTime

The DateTime value to reference.

Example

This example changes the Day and Time values (06T18:23:20.351) within the DateTime input to the beginning of the first day of the specified week (04T00:00:00).

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  atBeginningOfWeekDateTime: atBeginningOfWeek(|2020-10-06T18:23:20.351-03:00|)
}
Output
1
2
3
{
  "atBeginningOfWeekDateTime": "2020-10-04T00:00:00-03:00"
}

atBeginningOfWeek(localDateTime: LocalDateTime): LocalDateTime

Returns a new LocalDateTime value that changes the Day and Time values from the input to the beginning of the first day of the specified week.

The function treats Sunday as the first day of the week.

Parameters
Name Description

localDateTime

The LocalDateTime value to reference.

Example

This example changes the Day and Time values (06T18:23:20.351) within the LocalDateTime input to the beginning of the first day of the specified week (04T00:00:00).

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  atBeginningOfWeekLocalDateTime: atBeginningOfWeek(|2020-10-06T18:23:20.351|)
}
Output
1
2
3
{
  "atBeginningOfWeekLocalDateTime": "2020-10-04T00:00:00"
}

atBeginningOfWeek(date: Date): Date

Returns a new Date value that changes the Date input input to the first day of the specified week.

The function treats Sunday as the first day of the week.

Parameters
Name Description

date

The Date value to reference.

Example

This example changes the Day value (06) within the Date input to the first day of the week that contains 2020-10-06 (a Tuesday), which is 2020-10-04 (a Sunday). The Day value changes from 06 to 04.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  atBeginningOfWeekDate: atBeginningOfWeek(|2020-10-06|)
}
Output
1
2
3
{
  "atBeginningOfWeekDate": "2020-10-04"
}

atBeginningOfYear

atBeginningOfYear(dateTime: DateTime): DateTime

Takes a DateTime value as input and returns a DateTime value for the first day of the year specified in the input. It also sets the Time value to 00:00:00.

The month, day, and time in the input changes to 01-01T00:00:00.

Parameters
Name Description

dateTime

The DateTime value to reference.

Example

This example transforms the DateTime input (|2020-10-06T18:23:20.351-03:00|) to the date of the first day of the Year value (2020) in the input.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  atBeginningOfYearDateTime: atBeginningOfYear(|2020-10-06T18:23:20.351-03:00|)
}
Output
1
2
3
{
  "atBeginningOfYearDateTime": "2020-01-01T00:00:00.000-03:00"
}

atBeginningOfYear(localDateTime: LocalDateTime): LocalDateTime

Takes a LocalDateTime value as input and returns a LocalDateTime value for the first day of the year specified in the input. It also sets the Time value to 00:00:00.

The month, day, and time in the input changes to 01-01T00:00:00.

Parameters
Name Description

localDateTime

The LocalDateTime value to reference.

Example

This example transforms the LocalDateTime input (|2020-10-06T18:23:20.351|) to the date of the first day of the Year value (2020) in the input.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  atBeginningOfYearLocalDateTime: atBeginningOfYear(|2020-10-06T18:23:20.351|)
}
Output
1
2
3
{
  "atBeginningOfYearLocalDateTime": "2020-01-01T00:00:00"
}

atBeginningOfYear(date: Date): Date

Takes a Date value as input and returns a Date value for the first day of the year specified in the input.

The month and day in the input changes to 01-01.

Parameters
Name Description

date

The Date value to reference.

Example

This example transforms Date input (|2020-10-06|) to the date of the first day of the Year value (2020) in the input.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  atBeginningOfYearDate: atBeginningOfYear(|2020-10-06|)
}
Output
1
2
3
{
  "atBeginningOfYearDate": "2020-01-01"
}

date

date(parts: DateFactory): Date

Creates a Date value from values specified for year, month, and day fields.

Parameters
Name Description

parts

Number values for year, month, and day fields. The month must be a value between 1 and 12, and the day value must be between 1 and 31. You can specify the name-value pairs in any order, but the output is ordered by default as a Date value, such as 2012-10-11. The input fields are parts of a DateFactory type.

Example

This example shows how to create a value of type Date.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
   newDate: date({year: 2012, month: 10, day: 11})
}
Output
1
2
3
{
   "newDate": "2012-10-11"
}

dateTime

dateTime(parts: DateTimeFactory): DateTime

Creates a DateTime value from values specified for month, day, hour, minutes, seconds, and timezone fields.

Parameters
Name Description

parts

Number values for year, month, day, hour, minutes, and seconds fields followed by a TimeZone value for the the timezone field. Valid values are numbers between 1 and 12 for the month, 1 through 31 for the day, 0 through 23 for the hour, 0 through 59 for minutes, and 0 through 59 (including decimals, such as 59.99) for seconds. You can specify the name-value pairs in any order, but the output is ordered by default as a DateTime value, such as 2012-10-11T10:10:10-03:00. The input fields are parts of a DateTimeFactory type.

Example

This example shows how to create a value of type DateTime.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
    newDateTime: dateTime({year: 2012, month: 10, day: 11, hour: 12, minutes: 30, seconds: 40 , timeZone: |-03:00|})
}
Output
1
2
3
{
   "newDateTime": "2012-10-11T12:30:40-03:00"
}

localDateTime

localDateTime(parts: LocalDateTimeFactory): LocalDateTime

Creates a LocalDateTime value from values specified for year, month, day, hour, minutes, and seconds fields.

Parameters
Name Description

parts

Number values for year, month, day, hour, minutes, and seconds fields. Valid values are numbers between 1 and 12 for the month, 1 through 31 for the day, 0 through 23 for the hour, 0 through 59 for minutes, and 0 through 59 (including decimals, such as 59.99) for seconds fields. You can specify the name-value pairs in any order, but the output is ordered as a default LocalDateTime value, such as 2012-10-11T10:10:10. The input fields are parts of a LocalDateTimeFactory type.

Example

This example shows how to create a value of type LocalDateTime.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
    newLocalDateTime: localDateTime({year: 2012, month: 10, day: 11, hour: 12, minutes: 30, seconds: 40})
}
Output
1
2
3
{
   "newLocalDateTime": "2012-10-11T12:30:40"
}

localTime

localTime(parts: LocalTimeFactory): LocalTime

Creates a LocalTime value from values specified for hour, minutes, and seconds fields.

Parameters
Name Description

parts

Number values for hour, minutes, and seconds fields. Valid values are 0 through 23 for the hour, 0 through 59 for minutes, and 0 through 59 (including decimals, such as 59.99) for seconds fields. You can specify the name-value pairs in any order, but the output is ordered as a default LocalTime value, such as 10:10:10. The input fields are parts of a LocalDateTimeFactory type.

Example

This example shows how to create a value of type LocalTime.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  newLocalTime: localTime({ hour: 12, minutes: 30, seconds: 40})
}
Output
1
2
3
{
   "newLocalTime": "12:30:40"
}

time

time(parts: TimeFactory): Time

Creates a Time value from values specified for hour, minutes, seconds, and timezone fields.

Parameters
Name Description

parts

Number values for hour, minutes, and seconds fields, and a TimeZone value for the timezone field. Valid values are 0 through 23 for the hour, 0 through 59 for minutes, and 0 through 59 (including decimals, such as 59.99) for seconds fields. The timezone must be a valid TimeZone value, such as |-03:00| You can specify the name-value pairs in any order, but the output is ordered as a default Time value, such as 10:10:10-03:00. The input fields are parts of a TimeFactory type.

Example

This example shows how to create a value of type Time.

Source
1
2
3
4
5
6
7
%dw 2.0
import * from dw::core::Dates
output application/json
---
{
  newTime: time({ hour: 12, minutes: 30, seconds: 40 , timeZone: |-03:00| })
}
Output
1
2
3
{
   "newTime": "12:30:40-03:00"
}

today

today(): Date

Returns the date for today as a Date type.

Example

This example shows the output of today function.

Source
1
2
3
4
5
%dw 2.0
import * from dw::core::Dates
output application/json
---
today()
Output
1
"2021-05-15"

tomorrow

tomorrow(): Date

Returns the date for tomorrow as a Date type.

Example

This example shows the output of tomorrow function.

Source
1
2
3
4
5
%dw 2.0
import tomorrow from dw::core::Dates
output application/json
---
tomorrow()
Output
1
"2021-05-16"

yesterday

yesterday(): Date

Returns the date for yesterday as a Date type.

Example

This example shows the output of yesterday function.

Source
1
2
3
4
5
%dw 2.0
import * from dw::core::Dates
output application/json
---
yesterday()
Output
1
"2021-05-14"

Types

DateFactory

Type containing selectable day, month, and year keys and corresponding Number values, such as {day: 21, month: 1, year: 2021}. The fields accept a Number value. Numbers preceded by 0, such as 01, are not valid.

Definition
1
{ day: Number, month: Number, year: Number }

DateTimeFactory

Type that combines DateFactory, LocalTimeFactory, and Zoned types. For example, {day: 21, month: 1, year: 2021, hour: 8, minutes: 31, seconds: 55, timeZone : |-03:00|} as DateTimeFactory is a valid DateTimeFactory value.

Definition
1
DateFactory & LocalTimeFactory & Zoned

LocalDateTimeFactory

Type that combines DateFactory and LocalTimeFactory types. For example, {day: 21, month: 1, year: 2021, hour: 8, minutes: 31, seconds: 55, timeZone : |-03:00|} as LocalDateTimeFactory is a valid LocalDateTimeFactory value. The timeZone field is optional.

Definition
1
DateFactory & LocalTimeFactory

LocalTimeFactory

Type containing selectable hour, minutes, and seconds keys and corresponding Number values, such as {hour: 8, minutes: 31, seconds: 55}. The fields accept any Number value.

Definition
1
{ hour: Number, minutes: Number, seconds: Number }

TimeFactory

Type that combines LocalTimeFactory and Zoned types. For example, {hour: 8, minutes: 31, seconds: 55, timeZone : |-03:00|} as TimeFactory is a valid TimeFactory value.

Definition
1
LocalTimeFactory & Zoned

Zoned

Type containing a selectable timeZone key and TimeZone value, such as { timezone : |-03:00|}.

Definition
1
{ timeZone: TimeZone }