user912475
user912475

Reputation:

Add milliseconds to timestamp (bash, unix)

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

Upvotes: 4

Views: 11345

Answers (4)

JohnW
JohnW

Reputation: 724

You may try %3N, which works in git bash for windows and Debian 9.

Upvotes: 1

Mark
Mark

Reputation: 19969

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 using date to timestamp output lines.

Upvotes: 3

dakillakan
dakillakan

Reputation: 260

%N gives you nanoseconds and you could divide that by 1000000

Upvotes: 2

Barmar
Barmar

Reputation: 780871

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 a struct tm. The specification of this structure is here and it doesn't include anything more precise than seconds. Nanoseconds are in the timespec 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.

Upvotes: 4

Related Questions