Link to home
Start Free TrialLog in
Avatar of jonnyboy69
jonnyboy69

asked on

Timestamp in milliseconds

I need to create the following to integrate with a system:

"Date and time expressed as the number of milliseconds elapsed since January 1, 1970 00:00:00 GMT." (assuming the time was DateTime.Now)

I have been using this:
// Timespan
DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = DateTime.Now;
TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
sTimeStamp = ts.TotalMilliseconds.ToString();

However I am getting for example:
1139977698718.75

The system I am integrating with is expecting a whole number (i.e. no decimal points). Obviously I can trim the string I just dont understand what the decimal point is about, surely milliseconds are lowest common denominator?

Thanks
Avatar of Mike Tomlinson
Mike Tomlinson
Flag of United States of America image

How about...

            TimeSpan ts = DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0));
            String sTimeStamp = ts.TotalMilliseconds.ToString("0");
            Console.WriteLine(sTimeStamp);

What an odd question though...you used Ticks in your code...and Ticks are smaller than Milliseconds!

There are 10,000 ticks per millisecond:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtimespanclasstickspermillisecondtopic.asp
ASKER CERTIFIED SOLUTION
Avatar of Fernando Soto
Fernando Soto
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of jonnyboy69
jonnyboy69

ASKER

Its only an odd question if you know the answer, clearly I didnt know this...
You didn't like my condensed version of the code eh?   It does the same thing...