Portability
The module automatically detects the availabledate implementation:
- GNU date - Full functionality with date arithmetic
- BSD date (macOS) - Full functionality with adapted syntax
- Pure bash fallback - Basic functionality when date features are limited
Timestamp functions
Unix timestamp operations for precise time tracking.timedate::timestamp::unix()
timedate::timestamp::unix()
timedate::timestamp::unix_ms()
timedate::timestamp::unix_ms()
timedate::timestamp::unix_ns()
timedate::timestamp::unix_ns()
timedate::timestamp::to_human(timestamp, [format])
timedate::timestamp::to_human(timestamp, [format])
timestamp- Unix timestampformat- strftime format (optional, default: “%Y-%m-%d %H:%M:%S”)
timedate::timestamp::from_human(date_string)
timedate::timestamp::from_human(date_string)
date_string- Date in “YYYY-MM-DD HH:MM:SS” format
Date functions
Date manipulation and querying operations.Current date information
timedate::date::today()
timedate::date::today()
timedate::date::format([format], [timestamp])
timedate::date::format([format], [timestamp])
format- strftime format (optional, default: “%Y-%m-%d”)timestamp- Unix timestamp (optional, default: now)
timedate::date::year()
timedate::date::year()
timedate::date::month()
timedate::date::month()
timedate::date::day()
timedate::date::day()
timedate::date::day_of_week()
timedate::date::day_of_week()
timedate::date::day_name()
timedate::date::day_name()
timedate::date::day_name::short()
timedate::date::day_name::short()
timedate::date::day_of_year()
timedate::date::day_of_year()
timedate::date::week_of_year()
timedate::date::week_of_year()
timedate::date::quarter()
timedate::date::quarter()
Date arithmetic
timedate::date::add_days(date, n)
timedate::date::add_days(date, n)
date- Date in YYYY-MM-DD formatn- Number of days to add
timedate::date::sub_days(date, n)
timedate::date::sub_days(date, n)
date- Date in YYYY-MM-DD formatn- Number of days to subtract
timedate::date::add_months(date, n)
timedate::date::add_months(date, n)
date- Date in YYYY-MM-DD formatn- Number of months to add
timedate::date::add_years(date, n)
timedate::date::add_years(date, n)
date- Date in YYYY-MM-DD formatn- Number of years to add
timedate::date::days_between(date1, date2)
timedate::date::days_between(date1, date2)
date1- First date (YYYY-MM-DD)date2- Second date (YYYY-MM-DD)
timedate::date::yesterday()
timedate::date::yesterday()
timedate::date::tomorrow()
timedate::date::tomorrow()
Date ranges
timedate::date::week_start()
timedate::date::week_start()
timedate::date::week_end()
timedate::date::week_end()
timedate::date::month_start()
timedate::date::month_start()
timedate::date::month_end()
timedate::date::month_end()
timedate::date::year_start()
timedate::date::year_start()
timedate::date::year_end()
timedate::date::year_end()
Date navigation
timedate::date::next_weekday(weekday_number)
timedate::date::next_weekday(weekday_number)
weekday_number- Day (1=Mon, 2=Tue, …, 7=Sun)
timedate::date::prev_weekday(weekday_number)
timedate::date::prev_weekday(weekday_number)
weekday_number- Day (1=Mon, …, 7=Sun)
timedate::date::days_in_month(year, month)
timedate::date::days_in_month(year, month)
year- Year (YYYY)month- Month (01-12)
Date comparison
timedate::date::compare(date1, date2)
timedate::date::compare(date1, date2)
date1- First date (YYYY-MM-DD)date2- Second date (YYYY-MM-DD)
timedate::date::is_before(date1, date2)
timedate::date::is_before(date1, date2)
timedate::date::is_after(date1, date2)
timedate::date::is_after(date1, date2)
timedate::date::is_between(date, start, end)
timedate::date::is_between(date, start, end)
date- Date to checkstart- Range startend- Range end
Time functions
Time-of-day operations and time checking.timedate::time::now()
timedate::time::now()
timedate::time::format([format])
timedate::time::format([format])
format- strftime format (optional, default: “%H:%M:%S”)
timedate::time::hour()
timedate::time::hour()
timedate::time::minute()
timedate::time::minute()
timedate::time::second()
timedate::time::second()
timedate::time::timezone()
timedate::time::timezone()
timedate::time::timezone_offset()
timedate::time::timezone_offset()
Time checking
timedate::time::is_before(HH:MM)
timedate::time::is_before(HH:MM)
- Time in HH:MM format
timedate::time::is_after(HH:MM)
timedate::time::is_after(HH:MM)
timedate::time::is_between(start, end)
timedate::time::is_between(start, end)
start- Start time (HH:MM)end- End time (HH:MM)
timedate::time::is_business_hours([start], [end])
timedate::time::is_business_hours([start], [end])
start- Start time (optional, default: 09:00)end- End time (optional, default: 17:00)
timedate::time::is_morning()
timedate::time::is_morning()
timedate::time::is_afternoon()
timedate::time::is_afternoon()
timedate::time::is_evening()
timedate::time::is_evening()
Timing utilities
timedate::time::sleep(seconds, [message])
timedate::time::sleep(seconds, [message])
seconds- Duration to sleepmessage- Status message (optional, default: “Waiting”)
timedate::time::stopwatch::start()
timedate::time::stopwatch::start()
timedate::time::stopwatch::stop(token)
timedate::time::stopwatch::stop(token)
token- Token from stopwatch::start
Duration functions
Human-readable duration formatting and parsing.timedate::duration::format(seconds)
timedate::duration::format(seconds)
seconds- Total seconds
timedate::duration::format_ms(milliseconds)
timedate::duration::format_ms(milliseconds)
milliseconds- Total milliseconds
timedate::duration::parse(duration_string)
timedate::duration::parse(duration_string)
duration_string- String like “1d 2h 3m 4s”
timedate::duration::relative(timestamp)
timedate::duration::relative(timestamp)
timestamp- Unix timestamp
Calendar functions
Calendar calculations and holiday determination.timedate::calendar::is_leap_year(year)
timedate::calendar::is_leap_year(year)
year- Year (YYYY)
timedate::calendar::days_in_year(year)
timedate::calendar::days_in_year(year)
year- Year (YYYY)
timedate::calendar::is_weekend(date)
timedate::calendar::is_weekend(date)
date- Date in YYYY-MM-DD format
timedate::calendar::is_weekday(date)
timedate::calendar::is_weekday(date)
date- Date in YYYY-MM-DD format
timedate::calendar::iso_week(date)
timedate::calendar::iso_week(date)
date- Date in YYYY-MM-DD format
timedate::calendar::day_of_year(date)
timedate::calendar::day_of_year(date)
date- Date in YYYY-MM-DD format
timedate::calendar::quarter(date)
timedate::calendar::quarter(date)
date- Date in YYYY-MM-DD format
timedate::calendar::easter(year)
timedate::calendar::easter(year)
year- Year (YYYY)
timedate::calendar::weekdays_between(start, end)
timedate::calendar::weekdays_between(start, end)
start- Start date (YYYY-MM-DD)end- End date (YYYY-MM-DD)
timedate::calendar::month([year], [month])
timedate::calendar::month([year], [month])
cal command).Parameters:year- Year (optional, default: current)month- Month (optional, default: current)
Timezone functions
Timezone conversion and information.timedate::tz::convert(timestamp, timezone)
timedate::tz::convert(timestamp, timezone)
timestamp- Unix timestamptimezone- TZ database name (e.g., “America/New_York”)
timedate::tz::now(timezone)
timedate::tz::now(timezone)
timezone- TZ database name
timedate::tz::current()
timedate::tz::current()
timedate::tz::offset_seconds()
timedate::tz::offset_seconds()
timedate::tz::is_dst()
timedate::tz::is_dst()
timedate::tz::list()
timedate::tz::list()
timedate::tz::list::region(region)
timedate::tz::list::region(region)
region- Region name (e.g., “America”, “Europe”)