Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Epoch time in milliseconds: Is there a better way?

by GrandFather (Cardinal)
on Nov 25, 2008 at 03:37 UTC ( #725762=note: print w/ replies, xml ) Need Help??


in reply to Epoch time in milliseconds: Is there a better way?

gettimeofday () returns seconds and microseconds (not milliseconds) in array context. The documentation is not at all ambiguous about that.

What use are you putting the result to? Why not use the scalar context floating point result instead of a nasty string concatenation that will fail in nasty ways about 1/10th of the time?


Perl reduces RSI - it saves typing


Comment on Re: Epoch time in milliseconds: Is there a better way?
Re^2: Epoch time in milliseconds: Is there a better way?
by logan (Curate) on Nov 25, 2008 at 06:08 UTC
    Yup, microseconds. You are correct, sir. I will endeavor to more closely RTFM.

    What use are you putting the result to?

    What I'm doing is simulating a browser transaction and one of the required parameters is epoch time in milliseconds. I don't actually need the result to be millisecond accurate. I just need to pass a 13-digit number with no decimals as one of the parameters in the request. While millisecond accuracy would be nice, all I really need is for the number to be the right number of digits and for the value to be accurate to within a minute or two.

    Why not use the scalar context floating point result instead of a nasty string concatenation that will fail in nasty ways about 1/10th of the time?

    Ah! I think I get it:

    use Time::HiRes qw(gettimeofday); my $timestamp = int (gettimeofday * 1000); print STDOUT "timestamp = $timestamp\n"; exit; Output: timestamp = 1227593060768
    One line, no sprintf, and it's definitely a number so a potential future s/printf won't choke.

    -Logan
    "What do I want? I'm an American. I want more."

      Or if you don't need the the time stamp later you could:

      print STDOUT "timestamp = ", int (gettimeofday * 1000), "\n";

      Perl reduces RSI - it saves typing
      If all you want is "minute or two" accuracy, you don't need a hires timer. Just set the milliseconds portion of your string to '000'. You are still two orders of magnitude better accuracy than the spec calls for.
        It's true, I don't actually need real accuracy for the script to work, but my feeling is that having an accurate timestamp can't hurt. Also, I may want/need to use the data at some point in the future so I might as well do it right the first time.

        -Logan
        "What do I want? I'm an American. I want more."

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://725762]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (13)
As of 2014-11-27 10:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (183 votes), past polls