getting time in mili seconds

hi all UNIX Gurus,
this is my first post...so i posting this with great expectations:o...hoping to get the similar replies...

my question is....

need to get timestamp with millisecond in UNIX. Date command gives Year,month day, hour,minute and second but it does not give millisecond.

Any help in this will be appreciated.

thanks
Bhups.

Welcome to the forums. Please search the forums before asking questions as many questions have already been answered before. Here is a post that will give you the time in microseconds. You can easily convert that to milliseconds.

Cheers

thanks ppl....i actully checked the questions/replies but cudnt find ne answer to my query.....
actully i wanted to have a script/function in UNIX......n not "C" to do the same job....ie get mili seconds out of date (system date)....

ne more suggestions ppl:-)...??

cum to the rescue sir :smiley: ....a beginner conjures ur help :stuck_out_tongue: ...???

As I understand, you need a timestamp with millisecond precision.

Works with GNU date.

sh-2.05b$ cat bhups.ksh
#! /bin/ksh
epoch=$(date +%F-%l-%M-%S-)$(( $(date +%N) / 1000000 ))
echo $epoch
sh-2.05b$ ./bhups.ksh 
2005-12-06- 4-22-35-195

vino

You can't squeeze blood from a stone. The standard unix date command doesn't do milliseconds. Posix says: "The resolution of the system clock is unspecified.", but they make it clear elsewhere that a resolution of at least one second is required. Posix does demand that the system clock system calls supply an interface that supports microseconds. But you may not write a portable unix program that needs milliseconds. But as a practical matter, all modern systems will have at least millisecond resolution. But you won't find a standard unix utiliity that supports milliseconds. So you need another program to call from your shell script. Either GNU date or that little utility in the linked thread will do. And don't expect it to work well on any real old unix systems. In fact, even on a modern computer, several milliseconds may occur between the time your script obtains the milliseconds and communicates the timestamp to the outside world. Scripts need to fork and exec external programs to do stuff. That is not conducive to millisecond resolution.You may need to write your program in completely in C and/or use realtime extentions.

(Hmmmm: Vino is dividing the output of %N by 1000000 which implies that %N returns nanoseconds. I'll have to look into that. It's not obvious how to get nanoseconds....)