Date and time functions
NOW
Matches all 2 recorded answers
Recorded: 2 workbook cells. A volatile function: the recorded formulas hold it fixed, for example RAND()*0, so these cells show that the call works and not a clock or random value. How we measure this · See the Rust code
Local names in 40 languages
| Language | Name in Excel |
|---|---|
| Arabic | الآن |
| Bulgarian | NOW |
| Czech | NOW |
| Danish | NU |
| German | JETZT |
| Greek | NOW |
| English (Australia) | NOW |
| English (United Kingdom) | NOW |
| English (United States) | NOW |
| Spanish | AHORA |
| Estonian | NOW |
| Finnish | NOW |
| French | MAINTENANT |
| Hebrew | NOW |
| Croatian | NOW |
| Hungarian | MOST |
| Indonesian | NOW |
| Italian | ADESSO |
| Japanese | NOW |
| Korean | NOW |
| Lithuanian | NOW |
| Latvian | NOW |
| Norwegian | NÅ |
| Dutch | NU |
| Polish | TERAZ |
| Portuguese (Brazil) | AGORA |
| Portuguese (Portugal) | AGORA |
| Romanian | NOW |
| Russian | ТДАТА |
| Slovak | NOW |
| Slovenian | NOW |
| Serbian (Latin) | NOW |
| Swedish | NU |
| Thai | NOW |
| Turkish | ŞİMDİ |
| Ukrainian | NOW |
| Vietnamese | NOW |
| Chinese (Simplified) | NOW |
| Chinese (Hong Kong) | NOW |
| Chinese (Traditional) | NOW |
Names from Microsoft's support site.
What it does
NOW()
NOW returns the current date and time as a date serial: the whole part is today's date and the
fractional part is the time of day. It reads the host's clock, and it takes no arguments.
That makes it the one function in this assignment that is not a function in the mathematical sense
at all. Everything else here maps arguments to a value; NOW maps nothing to a value that
changes. Three consequences, and they are the substance of this page.
It is volatile
Volatility is not a performance footnote. A single NOW in a large model marks its whole dependent
subtree dirty on every recalculation, and volatility is contagious through the dependency graph. It
is also the reason NOW does not tick: the value changes when Excel recalculates, not
continuously. A cell showing NOW is a timestamp of the last recalculation, not a clock.
It is not testable the way the rest of the category is
A vector suite pairs an input with an expected output. NOW has no input, and its output is a
function of when you asked. There is nothing for a vector to hold. The refusal is a statement
about the function's nature, not about the harness's limitations — and it is exactly the kind of
typed missingness the Handbook prefers to a fabricated pass.
What can be characterized, given a controlled clock, are the properties around the value:
- the mapping from a known wall-clock instant to a serial (which is the
DATE/TIME model, already testable without
NOW); - the granularity — how finely the fractional part is quantized, which is a host-clock property;
- the stability within one recalculation — whether two
NOWcalls in one pass return the same value; - the relationship to TODAY — whether
TODAY()equalsINT(NOW())at every instant, including across a midnight boundary during a single recalculation.
None of those has been established here.
It carries a formatting hint
NOW is one of the documented seed examples for the Handbook's presentation-hint model: it returns
a plain number, and Excel applies a date-time format to the cell when the formula is entered into a
General-formatted cell. The formatting is host-side adaptation at the worksheet boundary, not part
of the value — see the value universe and
the call pipeline, stage 4.
Arguments
NOW() — no arguments. The parentheses are required syntax, not an empty argument list in the
value-universe sense: there is no Missing marker involved,
because there is no parameter slot.
Everything that varies about NOW's result comes from outside the call: the machine's clock, its
time zone, its daylight-saving state, and the workbook's date system. None of these is an argument,
and none of them is visible to a formula.
Try it
Quirks
Result and edge cases
Returns a Number: a date serial with a fractional part.
- Local time, not UTC. The value reflects the machine's local clock; the same workbook opened in two time zones shows different values. There is no argument and no worksheet function in this category to convert between them.
- Daylight-saving transitions make the local clock non-monotonic once a year.
NOWinherits that: a value read before and after a backward transition can go down. - Granularity is a host property. Whether the fractional part carries seconds, or something finer or coarser, is not something the function's contract states.
- Representability. The fraction is a double and 1/86400 is not exact, so the value is a nearby
double rather than the exact time — the same caveat as on TIME, and it matters
when
NOWresults are compared for equality or fed to SECOND. - A static timestamp is not this function. Excel's keyboard shortcuts for entering a fixed date
or time insert a literal value, not a
NOWformula; the two look identical in a cell and behave completely differently on the next recalculation.
Errors
NOW takes no arguments, so it has no argument-derived error conditions. There is no documented
error return.
The interesting failure modes are not error values at all: they are host-level — a clock outside the representable serial range, or an unavailable time provider — and lie outside what a worksheet formula can observe.
How to implement
Notes for implementers
- Freeze the instant for the duration of a recalculation pass. Two
NOWcalls in one evaluation must agree, or formulas comparing them can observe a moment that never existed —NOW() - NOW()should be zero. - Declare volatility explicitly so the recalculation engine can propagate it. A
NOWthat is not declared volatile produces a workbook that quietly shows stale times. - Do the local-time conversion outside the serial arithmetic, and record the time zone and
daylight-saving state as part of any captured observation. A recorded
NOWvalue without its zone is uninterpretable. - Do not attempt an
excel-bitexactclaim for this function. The claim would have to be about the clock, not the computation.
Rust code
Show the CalcFunc source of this function
Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
NOW · 4 lines · calc-func/src/catalogue/dates.rs on GitHub24 now_fn "NOW" (0, 0) [] |s, a, sv| {
let now = now(s)?;
serial_out(s, Ok(now))
}
Kernels shared with other functions
environmentcatalogue/datessystemcatalogue/datesfrom_1900catalogue/datesserial_outcatalogue/datesnowcatalogue/dates
Argument and result plumbing
outcatalogue/kit
No implementation has been published with a Handbook test suite for this function.
Version differences
No comparison between specific Excel builds is recorded here yet. This does not establish that all builds behave alike.
Alternatives
Relationships
- TODAY — the date-only sibling with the same volatility and the same host
dependency.
INT(NOW())andTODAY()are expected to agree; unverified here, and interesting precisely at midnight. - HOUR, MINUTE, SECOND — the usual
consumers of
NOW's fractional part, and where its granularity becomes visible. - DATE and TIME — the deterministic constructors. Any formula
that can be written with them instead of
NOWshould be, because it becomes testable. RAND,RANDBETWEEN,OFFSET,INDIRECT,CELL,INFO— the other volatile functions.NOWis not alone in its recalculation behaviour, though it is alone withTODAYin reading a clock.- Confusable.
NOW()versus a pasted static timestamp; andNOW()versusTODAY()where only the date is wanted, sinceNOW's fractional part silently breaks equality comparisons against whole-day serials.
Named variants
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents