Skip to content

Why AI does not know what today's date is

The short answer

There is no clock inside a model. A date reaches it only if the surrounding application writes one into the request, and Anthropic documents doing exactly that in its chat apps — while stating that the same system prompt does not apply to its API. So the same model can know today's date in one place and be a year adrift in another.

where “today” comes from

in the chat app
the app writes this in, invisibly
Today’s date is 26 July 2026.
the AI
It’s 26 July 2026.
same model, nothing written in

nobody mentions the date — the request arrives without one

the AI
Probably some time in 2025?
There is no clock inside a model. A date reaches it only when the surrounding app writes one into the request — so the same model can know today in one place and be a year adrift in another.
What actually gets sent

Anthropic publishes the system prompt its chat apps put in front of every conversation. Measured with a published encoding, it runs from 148 tokens for Claude Haiku 3 in July 2024 to 4,224 tokens for Claude Opus 5 on 24 July 2026. That block is where a date can reach the model at all, and the same page states that these prompts do not apply to the Claude API.

What’s actually happening

Ask what the time is and there is nothing inside the model to consult. Weights are a fixed set of numbers produced by a training run; they do not tick. Whatever the model says about “today” comes either from a date written into the request or from a guess shaped by the period it was trained on.

Anthropic documents the first route explicitly. Its published system prompts page states that Claude’s web interface and mobile apps:

use a system prompt to provide up-to-date information, such as the current date, to Claude at the start of every conversation
Anthropic — System prompts for Claude's web interface and apps

The date, in other words, is a string typed in by the product — an ordinary piece of text sitting in front of your message.

The same page then draws the boundary that explains most of the confusion around this symptom:

These system prompt updates do not apply to the Claude API
Anthropic — System prompts for Claude's web interface and apps

One model, two places, two different answers. In the chat app, the date is in front of it. Through the raw API, unless the developer put one there, it is not.

The demo above measures that block instead of describing it. Anthropic’s published prompts grew from 148 tokens for Claude Haiku 3 in July 2024 to 4,224 tokens for Claude Opus 5 in July 2026 — several pages of instructions you never wrote and never see, sent before every message. Everything the model is told about the world outside its training arrives through text like this.

Two consequences follow, and both are worth knowing.

The first is that the date is a claim in the input, not an observation. If the app is wrong, or uses your device’s clock, or the prompt was written for a different timezone, the model has no way to notice; it will do date arithmetic on whatever it was handed. There is no second source.

The second is about staleness. Anthropic describes the prompt as provided at the start of every conversation, and says nothing about refreshing it mid-conversation. A chat left open across midnight is not something the documentation promises to update.

When no date is supplied at all, the model does what it does with any missing fact: it produces the most plausible one. Plausible here means “near the end of what I saw”, so the guess lands close to the knowledge cutoff — recent enough to look right, months or years off.

What to do about it

Put the date in the message whenever it matters. “Today is 26 July 2026.” One sentence, and every deadline, age and interval in the answer is computed from something real.

Give both endpoints for any duration. “How long between 3 March and 26 July” is arithmetic. “How long until the deadline” quietly depends on a date the model may not have.

Do not accept relative words in an answer. “Recently”, “currently”, “the latest version”, “as of now” — all of these are anchored to a date you cannot see. Ask for the absolute date instead.

Assume it does not know when its own knowledge ends. That claim comes from training text or from a system prompt, and both age. The vendor’s model page is the source that is actually maintained.

Expect the answer to change between apps. The chat app, the mobile app, a plugin and the API are different surroundings around the same model. The date is a property of the surroundings.

Common questions

1 Why does it sometimes get the date right?
Because the application told it. Anthropic states that its web interface and mobile apps use a system prompt to provide up-to-date information, such as the current date, at the start of every conversation. Get the same model through the API with no system prompt of your own and there is nothing to read the date from.
2 Why is its guess usually close but wrong?
A guess anchored on the training data lands near the end of it. That is why the wrong date is rarely absurd and is instead a few months or a year behind — close enough to pass unnoticed in an answer you skim.
3 Can I just tell it the date?
Yes, and that is the whole fix. A date in your message is in the request, which is the only place a date can be. Say it explicitly whenever the answer depends on when now is.

Related

Sources

Last checked: