The Date class provides a basic structure for date and time related information. Date instances can be created by

There are some extra functions available in the DateTools class.

In the context of Haxe dates, a timestamp is defined as the number of milliseconds elapsed since 1st January 1970 UTC.

Supported range

Due to platform limitations, only dates in the range 1970 through 2038 are supported consistently. Some targets may support dates outside this range, depending on the OS at runtime. The Date.fromTime method will not work with timestamps outside the range on any target.

Static methods


Creates a Date from the formatted string s. The following formats are accepted by the function:

  • "YYYY-MM-DD hh:mm:ss"
  • "YYYY-MM-DD"
  • "hh:mm:ss"

The first two formats expressed a date in local time. The third is a time relative to the UTC epoch.


Creates a Date from the timestamp (in milliseconds) t.


Returns a Date representing the current local time.


new(year:Int, month:Int, day:Int, hour:Int, min:Int, sec:Int)

Creates a new date object from the given arguments.

The behaviour of a Date instance is only consistent across platforms if the the arguments describe a valid date.

  • month: 0 to 11 (note that this is zero-based)
  • day: 1 to 31
  • hour: 0 to 23
  • min: 0 to 59
  • sec: 0 to 59



Returns the timestamp (in milliseconds) of this date. On cpp and neko, this function only has a second resolution, so the result will always be a multiple of 1000.0, e.g. 1454698271000.0. To obtain the current timestamp with better precision on cpp and neko, see the Sys.time API.

For measuring time differences with millisecond accuracy on all platforms, see haxe.Timer.stamp.


Returns a string representation of this Date in the local timezone using the standard format YYYY-MM-DD HH:MM:SS. See DateTools.format for other formatting rules.