EDIT: This is apparently not possible, see Barmars answer below.
I use the command below a lot to create a timestamp for archiving purposes. I'd like to add milliseconds to the string. Is that possible? I use this script on both osx and linux, so a solution that works on both would be nice. Are seconds ever rounded up or down with or without milliseconds? (Are minutes rounded up or down?)
date -n +%Y%m%d%H%M%S
%N gives you nanoseconds and you could divide that by 1000000
In general you can't, but I thought I'd mention that in
ts
, you can use "%.S" for millisecond precision. Just in case you were usingdate
to timestamp output lines.I don't think there's a way to do this portably. See the POSIX strftime specification, it doesn't mention anything about milliseconds or nanoseconds.
Furthermore, the input to
strftime
is astruct tm
. The specification of this structure is here and it doesn't include anything more precise than seconds. Nanoseconds are in thetimespec
structure, but this is mostly used for time periods, not clock time, and there's no requirement for the system to maintain the clock time to more than second resolution.