Print current time (with milliseconds)

Solution 1:

date +%H:%M:%S:%N will give you the current time with nano seconds, you could then chop off however many digits or rearrange the time to how you wish to have it.

date --help can give you some other configuration options

Solution 2:

If you want to get milliseconds instead of nanoseconds, you may simply use %3N to truncate the nanoseconds to the 3 most significant digits:

$ date +"%Y-%m-%d %H:%M:%S,%3N"
2014-01-08 16:00:12,746

or

$ date +"%F %T,%3N"
2014-01-08 16:00:12,746

testet with »GNU bash, Version 4.2.25(1)-release (i686-pc-linux-gnu)«

Also tested successfully in my cygwin installation.

But be aware, that %N may not implemented depending on your target system or bash version. Tested on an embedded system »GNU bash, version 4.2.37(2)-release (arm-buildroot-linux-gnueabi)« there was no %N:

date +"%F %T,%N"
2014-01-08 16:44:47,%N