uutils/coreutils

date: strftime flags propagate into composite specifiers (%-D, %-F, …)

Open

#11.657 aberto em 5 de abr. de 2026

Ver no GitHub
 (4 comments) (0 reactions) (0 assignees)Rust (1.852 forks)batch import
U - datefuzzinggood first issue

Métricas do repositório

Stars
 (23.246 stars)
Métricas de merge de PR
 (Mesclagem média 9d 14h) (216 fundiu PRs em 30d)

Description

Summary

GNU date treats composite strftime specifiers (%D, %F, %T, %r, %R, %c, %x, %X) as atomic: flags like - apply to the whole expansion, not to inner sub-fields. uutils lets the - flag propagate into the inner %m, producing 6/15/24 instead of 06/15/24.

Found by a fuzz_date run.

Reproduction

$ LC_ALL=C TZ=UTC /usr/bin/date -d '2024-06-15' '+%-D'
06/15/24

$ LC_ALL=C TZ=UTC target/debug/coreutils date -d '2024-06-15' '+%-D'
6/15/24

Test

#[test]
fn test_date_strftime_flag_on_composite() {
    new_ucmd!()
        .env("LC_ALL", "C")
        .env("TZ", "UTC")
        .arg("-d")
        .arg("2024-06-15")
        .arg("+%-D")
        .succeeds()
        .stdout_is("06/15/24\n");
}

Guia do colaborador