sandbox-dates
GitHub提供沙箱环境内的日期解析、格式化及算术运算能力,基于date-fns库。适用于需要在代码节点中处理时间逻辑的场景,支持UTC模式下的日期计算与字符串转换。
Trigger Scenarios
Install
npx skills add nodetool-ai/nodetool --skill sandbox-dates -g -y
SKILL.md
Frontmatter
{
"name": "sandbox-dates",
"description": "Date arithmetic, parsing and formatting inside a Code node or CodeAct action, with date-fns running in the guest"
}
Dates in the sandbox
Specifier: @nodetool-ai/sandbox-dates. One module, date-fns's root export —
around 250 named functions. There is no default export, so import the names you
use.
Arithmetic and comparison
import { addDays, differenceInCalendarDays, isBefore } from "@nodetool-ai/sandbox-dates";
const due = addDays(new Date(inputs.startedAt), 30);
return { due: due.toISOString(), overdue: isBefore(due, new Date()), days: differenceInCalendarDays(due, new Date()) };
Parsing and formatting
import { parseISO, format, isValid } from "@nodetool-ai/sandbox-dates";
const when = parseISO(inputs.timestamp);
if (!isValid(when)) return { label: "unknown" };
return { label: format(when, "EEEE, d MMMM yyyy") };
format uses date-fns's own English locale tables, not Intl — which the
guest does not have. That is why formatting works here at all, and it is also
the limit: another language means another locale, and locales live at
date-fns/locale, a subpath this pack does not publish.
Gotchas
- UTC only. The guest runs with no time-zone database, so
new Date()and every conversion behave as UTC. Anything zone-aware — "9 am in Berlin" — belongs on the host, not here. - Named imports only.
import dates from "@nodetool-ai/sandbox-dates"gets you nothing; date-fns is pure ESM with no default export. - Import what you use. The bundle is about 176 KB and loads as one module
per invocation, so a node that needs one comparison pays for all of it. For a
single
Datesubtraction, plain arithmetic is cheaper. - No timers.
setTimeoutdoes not exist in the guest. date-fns needs none, but code around it must not either.
Version History
- a6a7e57 Current 2026-08-20 09:52


