]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
hwclock.c, hwclock.8.in: new --show format
authorJ William Piggott <elseifthen@gmx.com>
Wed, 17 Feb 2016 00:28:36 +0000 (19:28 -0500)
committerJ William Piggott <elseifthen@gmx.com>
Wed, 17 Feb 2016 00:37:32 +0000 (19:37 -0500)
* hwclock.c: change --get and --show functions to the ISO 8601
  format and concatenate fractional seconds to the time display.

* hwclock.8.in: document this.

Signed-off-by: J William Piggott <elseifthen@gmx.com>
sys-utils/hwclock.8.in
sys-utils/hwclock.c

index d72b7a8ee57329d9631d4e7f7a7aebac3e232f50..eddb8647fc74de5bdd185e2500df8511ff5873a2 100644 (file)
@@ -88,16 +88,14 @@ command, such as \%'11\ minute\ mode' or from dual-booting another OS.
 .TQ
 .B \-\-get
 .br
-Read the Hardware Clock and print the time on standard output.
+Read the Hardware Clock and print its time to standard output in the
+.B ISO 8601
+format.
 The time shown is always in local time, even if you keep your Hardware Clock
 in UTC.  See the
 .B \%\-\-localtime
 option.
 .sp
-The time shown is in same format as that of 
-.BR \%date (1)
-by default, and additionally, the number of microseconds is shown.
-.sp 
 Showing the Hardware Clock time is the default when no function is specified.
 .sp
 The
index f50739b503fc7ef4f06da1d1cf2451a2d802f350..21e0d1b6ac545b54459f2fca5225d8b3229123fd 100644 (file)
@@ -687,14 +687,15 @@ display_time(const bool hclock_valid, struct timeval hwctime)
                       "either invalid (e.g. 50th day of month) or beyond the range "
                       "we can handle (e.g. Year 2095)."));
        else {
-               struct tm *lt;
-               char *format = "%c";
-               char ctime_now[200];
-
-               lt = localtime(&hwctime.tv_sec);
-               strftime(ctime_now, sizeof(ctime_now), format, lt);
-               printf(_("%s and %06ld microseconds\n"),
-                      ctime_now, (long)hwctime.tv_usec);
+               struct tm lt;
+               int zhour, zmin;
+
+               lt = *localtime(&hwctime.tv_sec);
+               zhour = - timezone / 60 / 60;
+               zmin = abs(timezone / 60 % 60);
+               printf(_("%4d-%.2d-%.2d %02d:%02d:%02d.%06ld%+02d:%02d\n"),
+                      lt.tm_year + 1900, lt.tm_mon + 1, lt.tm_mday, lt.tm_hour,
+                      lt.tm_min, lt.tm_sec, (long)hwctime.tv_usec, zhour, zmin);
        }
 }