Subject: bug#29589: date %k adds extra space for single digits hours

From: Bishop Bettini <[email-masked]>
Date: Wed, 6 Dec 2017 11:49:07 -0500

On Wed, Dec 6, 2017 at 4:17 AM, Noam Arad <[email-masked]> wrote:

> When using date command with the format %k if the hour is single digits
> there is an extra space added.
> E.g.: date -u +"%Y/%m/%d %k:%M:%S" when run at "2017/12/06 9:16:26" will
> give the output "2017/12/06  9:16:26"
> NOTE: there are two spaces between "06" and "9".
>

This seems expected. Per the documentation as of GNU coreutils 8.22:

       %k     hour, space padded ( 0..23); same as %_H

This is just a pass-thru to strftime under the hood, whose documentation
says:

       %k     The hour (24-hour clock) as a decimal number (range 0 to
23);  single  digits  are  preceded  by  a
              blank.  (See also %H.)  (Calculated from tm_hour.)  (TZ)

To format without the space, use %-k:

$ TZ=America/Whitehorse date +'%k'
 8
$ TZ=America/Whitehorse date +'%-k'
8