Creates a CFML date object from the given year, month and day.

CreateDate is a subset of CreateDateTime(). The time in the returned object is set to 00:00:00.

CreateDate( year=number, month=number, day=number, timezone=timezone );

Returns: DateTime

Argument Description Default
number, required

Integer in the range 0-9999. Integers in the range 0-29 are converted to 2000-2029. Integers in the range 30-99 are converted to 1930-1999. You cannot specify dates before AD 100.

number, optional

Integer in the range 1-12

Alias: months


number, optional

Integer in the range 1-31

Alias: days


timezone, optional

A datetime object is independent of a specific timezone; it is only an offset in milliseconds from 1970-1-1 00.00:00 UTC (Coordinated Universal Time).

The timezone only comes into play when you need specific information like hours in a day, minutes in a hour or which day it is as these calculations depend on the timezone.

A timezone must be specified in order to translate the date object to something else. If you do not provide the timezone in the function call, it will default to the timezone specified in the Lucee Administrator (Settings/Regional), or the timezone specified for the current request using the function setTimezone().

You can find a list of all available timezones in the Lucee administrator (Settings/Regional). Some examples of valid timezones include:

  • AGT (for time in Argentina)
  • Europe/Zurich (for time in Zurich/Switzerland)
  • HST (Hawaiian Standard Time in the USA)
  • JVM (JVM / Server Default Timezone)


mydate = createDate(year(now()), month(now()), day(now()));
    writeOutput("The date is " & dateFormat(myDate, "dddd, d mmmm yyyy") & ".");

See also