Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Java's System.currentTimeMillis() to C++

Reply
Thread Tools

Java's System.currentTimeMillis() to C++

 
 
tak
Guest
Posts: n/a
 
      09-28-2007
Hi.

I have a client / server application, which the client will send the
server a timestamp everytime when there is a transaction. The client
is using Java, and it sends the timestamp using java's
System.currentTimeMillis(), which returns, "the difference, measured
in milliseconds, between the current time and midnight, January 1,
1970 UTC."

On the server side - it is implemented in C++, so, with this number of
millis since 1/1/1970 - what C++ function can I use to get the month,
day, year, hour, minute, seconds, and milliseconds?

TIA,
Tak

 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      09-28-2007
tak wrote:
> I have a client / server application, which the client will send the
> server a timestamp everytime when there is a transaction. The client
> is using Java, and it sends the timestamp using java's
> System.currentTimeMillis(), which returns, "the difference, measured
> in milliseconds, between the current time and midnight, January 1,
> 1970 UTC."
>
> On the server side - it is implemented in C++, so, with this number of
> millis since 1/1/1970 - what C++ function can I use to get the month,
> day, year, hour, minute, seconds, and milliseconds?


There is no standard function that would do that. You need to look up
time/date functions provided by your OS. It is possible that it does
not have it either and you're going to have to implement it yourself
using available functions.

Some systems implement 'time()' function so that it provides the number
of _seconds_ since the start of 1970. Not sure if it helps, though.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask


 
Reply With Quote
 
 
 
 
Justin.SpahrSummers@gmail.com
Guest
Posts: n/a
 
      09-28-2007
On Sep 28, 9:33 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote:
> tak wrote:
> > I have a client / server application, which the client will send the
> > server a timestamp everytime when there is a transaction. The client
> > is using Java, and it sends the timestamp using java's
> > System.currentTimeMillis(), which returns, "the difference, measured
> > in milliseconds, between the current time and midnight, January 1,
> > 1970 UTC."

>
> > On the server side - it is implemented in C++, so, with this number of
> > millis since 1/1/1970 - what C++ function can I use to get the month,
> > day, year, hour, minute, seconds, and milliseconds?

>
> There is no standard function that would do that. You need to look up
> time/date functions provided by your OS. It is possible that it does
> not have it either and you're going to have to implement it yourself
> using available functions.


What about gmtime(time(NULL))? That will return a pointer to a
structure with all the information you need except milliseconds. From
there, it'd be relatively easy to do some math to get one value like
Java does, just faking the milliseconds part or using some platform-
specific function to retrieve it.

 
Reply With Quote
 
Victor Bazarov
Guest
Posts: n/a
 
      09-28-2007
wrote:
> On Sep 28, 9:33 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote:
>> tak wrote:
>>> I have a client / server application, which the client will send the
>>> server a timestamp everytime when there is a transaction. The client
>>> is using Java, and it sends the timestamp using java's
>>> System.currentTimeMillis(), which returns, "the difference, measured
>>> in milliseconds, between the current time and midnight, January 1,
>>> 1970 UTC."

>>
>>> On the server side - it is implemented in C++, so, with this number
>>> of millis since 1/1/1970 - what C++ function can I use to get the
>>> month, day, year, hour, minute, seconds, and milliseconds?

>>
>> There is no standard function that would do that. You need to look
>> up time/date functions provided by your OS. It is possible that it
>> does not have it either and you're going to have to implement it
>> yourself using available functions.

>
> What about gmtime(time(NULL))? That will return a pointer to a
> structure with all the information you need except milliseconds. From
> there, it'd be relatively easy to do some math to get one value like
> Java does, just faking the milliseconds part or using some platform-
> specific function to retrieve it.


I believe that's what I meant by "have to implement it yourself". The
OP didn't specify whether milliseconds were important. The available
functions are undoubtedly described in the manual, including 'gmtime'
and 'time'. So, with additional information OP decided not to share,
I am sure all this stuff is figure-out-able.

Consider, however, that since 'gmtime' returns a pointer to some
static struct somewhere, it's not thread-safe, and special precautions
have to be made when using it on the server side, which is most likely
be threaded.

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask


 
Reply With Quote
 
Scott Gifford
Guest
Posts: n/a
 
      09-28-2007
tak <> writes:

[...]

> what C++ function can I use to get the month, day, year, hour,
> minute, seconds, and milliseconds?


As others have said, it depends on the OS. In Unix, the library
function is gettimeofday(). Not sure about other systems, or if
there's a 3rd-party library available providing a portable interface.

-----Scott.
 
Reply With Quote
 
Justin.SpahrSummers@gmail.com
Guest
Posts: n/a
 
      09-28-2007
On Sep 28, 11:09 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote:
> Justin.SpahrSumm...@gmail.com wrote:
> > On Sep 28, 9:33 am, "Victor Bazarov" <v.Abaza...@comAcast.net> wrote:
> >> tak wrote:
> >>> I have a client / server application, which the client will send the
> >>> server a timestamp everytime when there is a transaction. The client
> >>> is using Java, and it sends the timestamp using java's
> >>> System.currentTimeMillis(), which returns, "the difference, measured
> >>> in milliseconds, between the current time and midnight, January 1,
> >>> 1970 UTC."

>
> >>> On the server side - it is implemented in C++, so, with this number
> >>> of millis since 1/1/1970 - what C++ function can I use to get the
> >>> month, day, year, hour, minute, seconds, and milliseconds?

>
> >> There is no standard function that would do that. You need to look
> >> up time/date functions provided by your OS. It is possible that it
> >> does not have it either and you're going to have to implement it
> >> yourself using available functions.

>
> > What about gmtime(time(NULL))? That will return a pointer to a
> > structure with all the information you need except milliseconds. From
> > there, it'd be relatively easy to do some math to get one value like
> > Java does, just faking the milliseconds part or using some platform-
> > specific function to retrieve it.

>
> I believe that's what I meant by "have to implement it yourself". The
> OP didn't specify whether milliseconds were important. The available
> functions are undoubtedly described in the manual, including 'gmtime'
> and 'time'. So, with additional information OP decided not to share,
> I am sure all this stuff is figure-out-able.


I apologize. I took "available functions" to mean those "provided by
your OS," not what's available in the standard library.

 
Reply With Quote
 
James Kanze
Guest
Posts: n/a
 
      09-28-2007
On Sep 28, 4:29 pm, tak <takw...@katnik.com> wrote:
> I have a client / server application, which the client will send the
> server a timestamp everytime when there is a transaction. The client
> is using Java, and it sends the timestamp using java's
> System.currentTimeMillis(), which returns, "the difference, measured
> in milliseconds, between the current time and midnight, January 1,
> 1970 UTC."


> On the server side - it is implemented in C++, so, with this number of
> millis since 1/1/1970 - what C++ function can I use to get the month,
> day, year, hour, minute, seconds, and milliseconds?


You can't get it in a single function, but the value % 1000 will
give milliseconds, and the value / 1000, converted to a time_t,
can be used with localtime() or gmttime() for the rest.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57