tags:

views:

3575

answers:

1

Date.getTime() returns milliseconds since Jan 1, 1970. Unixtime is seconds since Jan 1, 1970. I don't usually code in java, but I'm working on some bug fixes. I have:

Date now = new Date();   
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();

Is there a better way to get unixtime in java?

UPDATE

Based on John M's suggestion, I ended up with:

return (int) (System.currentTimeMillis() / 1000L);
+18  A: 

Avoid the Date object creation w/ System.currentTimeMillis(). A divide by 1000 gets you to Unix epoch.

As mentioned in a comment, you typically want a primitive long (lower-case-l long) not a boxed object long (capital-L Long).

long unixTime = System.currentTimeMillis() / 1000L;
John M
Also consider using primitive long instead of autoboxing to Long, unless you want to handle the number as an Object (like put it into a Collection), again avoids unnecessary object creation
Brabster
If you can avoid using Date altogether, you will be better off anyway...
Varkhan