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

From: Noam Arad <[email-masked]>
Date: Wed, 6 Dec 2017 18:55:01 +0000

Thanks for the quick reply.
Will use your suggestions.

Noam

From: Bishop Bettini [mailto:[email-masked]]
Sent: Wednesday, December 6, 2017 6:49 PM
To: Noam Arad <[email-masked]>
Cc: [email-masked]
Subject: Re: bug#29589: date %k adds extra space for single digits hours

On Wed, Dec 6, 2017 at 4:17 AM, Noam Arad <[email-masked]<mailto:[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