Date
Date provides JavaScript-compatible date/time handling. Implemented using Rust's SystemTime and the Hinnant civil date algorithm -- no external dependencies.
Creating dates
const now = new Date(); // Current time
const fromMs = new Date(1700000000000); // From milliseconds since epoch
const fromStr = new Date("2024-01-15"); // Parse date string
const fromParts = new Date(2024, 0, 15); // Year, month (0-based), day
Full component constructor:
const precise = new Date(2024, 0, 15, 10, 30, 0, 0);
// Year, month, day, hours, minutes, seconds, milliseconds
Static methods
Date.now(); // Current time as milliseconds
Date.parse("2024-01-15"); // Parse string to milliseconds
Date.UTC(2024, 0, 15); // UTC milliseconds from components
Getters
const d = new Date();
d.getTime(); // Milliseconds since epoch
d.getFullYear(); // 4-digit year
d.getMonth(); // 0-11 (January = 0)
d.getDate(); // 1-31 (day of month)
d.getDay(); // 0-6 (Sunday = 0)
d.getHours(); // 0-23
d.getMinutes(); // 0-59
d.getSeconds(); // 0-59
d.getMilliseconds(); // 0-999
d.getTimezoneOffset(); // Minutes offset from UTC
Setters
let d = new Date();
d.setTime(1700000000000);
d.setFullYear(2025);
d.setMonth(5); // June (0-based)
d.setDate(15);
d.setHours(10);
d.setMinutes(30);
d.setSeconds(0);
d.setMilliseconds(0);
Formatting
const d = new Date();
d.toISOString(); // "2024-01-15T10:30:00.000Z"
d.toString(); // Human-readable full date
d.toDateString(); // Date portion only
d.toTimeString(); // Time portion only
d.toUTCString(); // UTC string format
d.toJSON(); // Same as toISOString()
d.toLocaleDateString(); // Locale-aware date
d.toLocaleString(); // Locale-aware date + time
d.toLocaleTimeString(); // Locale-aware time
valueOf
d.valueOf(); // Same as getTime() -- milliseconds since epoch
Example: measuring elapsed time
function main() {
const start = Date.now();
// do some work
let sum: i64 = 0;
for (let i: i64 = 0; i < 1000000; i = i + 1) {
sum = sum + i;
}
const elapsed = Date.now() - start;
console.log(`Sum: ${sum}, took ${elapsed}ms`);
}