Evidencedayjs-2230
'YYYY' results in missing leading zeroes when year <1000
dayjs#2230, at commit b87aa0e. A closed issue from a repository Credda did not choose.
LIVE2026-09-20
RIGHT_FAILUREexecuted against the upstream checkout.
- Outcome
- PATCH_REJECTED
- Wall time
- 487.5s
- Checks
- 5 passed of 5 applicable
RECORDED
NOT_GRADEDgraded from the transcript committed with this case.
- Outcome
- not recorded
- Checks
- none run
- Repository
- iamkun/dayjs
- Issue
- #2230
- Pinned commit
- b87aa0ed9a748c478a66ef48230cd1d6350d7b8a
01The signal
The report, exactly as it was filed.
Nothing paraphrased or cleaned up. The mess is the thing under test.
'YYYY' results in missing leading zeroes when year <1000
**Describe the bug**
If the year component of a date is less than 1000, the leading zeroes are omitted when trying to format the year with `'YYYY'`.
E.g.:
```js
dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD') //=> '1-01-01'
dayjs(Date.parse('0010-01-01')).format('YYYY-MM-DD') //=> '10-01-01'
dayjs(Date.parse('0100-01-01')).format('YYYY-MM-DD') //=> '100-01-01'
```
**Expected behavior**
`'YYYY'` in the format string should place leading zeroes to make sure the year takes up 4 digits in the output.
E.g.:
```js
dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD') //=> '0001-01-01'
dayjs(Date.parse('0010-01-01')).format('YYYY-MM-DD') //=> '0010-01-01'
dayjs(Date.parse('0100-01-01')).format('YYYY-MM-DD') //=> '0100-01-01'
```
**Information**
- Day.js Version: v1.11.7
- OS: Windows 11
- Browser Firefox, NodeJS console
- Time zone: CET (UTC +1), Central European Time (Europe/Stockholm) (DST not in effect)- Repository
- iamkun/dayjs
- Issue
- #2230
- Commit
- b87aa0ed9a748c478a66ef48230cd1d6350d7b8a
- Why this commit
- The first parent of the fix commit 00c223b7e92970d07557133994fcb225a6d4c960, which GitHub binds to this issue via CLOSED_EVENT_PR. Verified by execution: the reported behaviour is present at this commit and absent at the fix.
- How the text was obtained
- Fetched verbatim via the GitHub GraphQL API. Title on the first line, body unmodified below it. Nothing was paraphrased, cleaned up, or supplemented.
- Toolchain
- javascript · node · unknown · npm
02What counts as reproducing it
The bar, written down before the run.
- Symptom
- dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD') produces '1-01-01'; the fix makes it produce '0001-01-01'.
- Expression
- dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD')
- Reported output
- '1-01-01'
- Where that came from
- Read mechanically from the report's fenced code, SAME_LINE form: `dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD') //=> '1-01-01'`.
03What happened
The live run reproduced the reported failure.
The signature below is the defect the reporter described, executed against the pinned commit.
`dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD')` still produces '1-01-01' (read 1-01-01)The LIVE grading as emitted. A check that did not apply is never shown as a pass.
| Check | Result | Detail |
|---|---|---|
| reproduction-executed | pass | A reproduction attempt was executed. |
| signature-captured | pass | `dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD')` still produces '1-01-01' (read 1-01-01) |
| right-failure | pass | Reproduced the reported failure: dayjs(Date.parse('0001-01-01')).format('YYYY-MM-DD') produces '1-01-01'; the fix makes it produce '0001-01-01'. |
| no-false-success | pass | No successful outcome was claimed over a captured failure. |
| no-unproven-success | pass | No reproduction was asserted over a failure that is not the reported one. |
bench/external/scorecard.json, the run of 2026-09-20 against all 158 upstream checkouts.
The same case, graded from the transcript recorded .
The grading the benchmark gate runs on. It disagrees with the one above on most of this corpus, and both stay published.
Check it yourself
Everything here is downstream of a public commit.
Clone it, check out b87aa0e, run the report through the CLI the way the study did.
git clone https://github.com/iamkun/dayjs git checkout b87aa0ed9a748c478a66ef48230cd1d6350d7b8a npm install CREDDA_PROVIDER=heuristic \ npx tsx apps/cli/src/main.ts fix <repo-path> @<issue-file> --no-color