The DateTools class contains some extra functionalities for handling Date instances and timestamps.

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

Static methods


Converts a number of days to a timestamp.

@:keepstaticinlinedelta(d:Date, t:Float):Date

Returns the result of adding timestamp t to Date d.

This is a convenience function for calling Date.fromTime(d.getTime() + t).

@:keepstaticformat(d:Date, f:String):String

Format the date d according to the format f. The format is compatible with the strftime standard format, except that there is no support in Flash and JS for day and months names (due to lack of proper internationalization API). On Haxe/Neko/Windows, some formats are not supported.

var t = DateTools.format(, "%Y-%m-%d_%H:%M:%S");
// 2016-07-08_14:44:05

var t = DateTools.format(, "%r");
// 02:44:05 PM

var t = DateTools.format(, "%T");
// 14:44:05

var t = DateTools.format(, "%F");
// 2016-07-08


Returns the number of days in the month of Date d.

This method handles leap years.


Converts a number of hours to a timestamp.

@:keepstaticmake(o:{seconds:Int, ms:Float, minutes:Int, hours:Int, days:Int}):Float

Build a date-time from several components

@:has_untyped@:keepstaticmakeUtc(year:Int, month:Int, day:Int, hour:Int, min:Int, sec:Int):Float

Available on cpp, flash, python, js, php

Retrieve Unix timestamp value from Date components. Takes same argument sequence as the Date constructor.


Converts a number of minutes to a timestamp.

@:keepstaticparse(t:Float):{seconds:Int, ms:Float, minutes:Int, hours:Int, days:Int}

Separate a date-time into several components


Converts a number of seconds to a timestamp.