Skip to content

A single number shouldn't be interpreted as a year #197

@cakebaker

Description

@cakebaker

uutils date interprets a single number as a year whereas GNU date interprets it as a time (without seconds). Some examples:

$ LC_ALL=C date -d "0"
Mon Aug  4 00:00:00 CEST 2025
$ LC_ALL=C date -d "23"
Mon Aug  4 23:00:00 CEST 2025
$ LC_ALL=C date -d "24"
date: invalid date '24'
$ LC_ALL=C date -d "159"
Mon Aug  4 01:59:00 CEST 2025
$ LC_ALL=C date -d "160"
date: invalid date '160'
$ LC_ALL=C date -d "2359"
Mon Aug  4 23:59:00 CEST 2025
$ LC_ALL=C date -d "2400"
date: invalid date '2400'
$ LC_ALL=C date -d "235910"
date: invalid date '235910'

$ cargo run -q date -d "0"
Fri Dec 31 22:34:08 LMT -0001
$ cargo run -q date -d "23"
Sat Dec 31 23:00:00 CET 2022
$ cargo run -q date -d "24"
Sun Dec 31 23:00:00 CET 2023
$ cargo run -q date -d "159"
Sun Dec 31 22:34:08 LMT 0158
$ cargo run -q date -d "160"
Mon Dec 31 22:34:08 LMT 0159
$ cargo run -q date -d "2359"
Wed Dec 31 23:00:00 CET 2358
$ cargo run -q date -d "2400"
Fri Dec 31 23:00:00 CET 2399
$ cargo run -q date -d "235910"
date: invalid date '235910'

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions