2017-07-14 54 views
0

我使用下面的代碼在UNIX獲取設備當前的時間在UNIX中的Android

System.currentTimeMillis()/1000L 

獲得當前的時間,但它返回當前GMT,但我需要在UNIX設備的時間。例如,如果時區是GMT + 5,它應該返回GMT + 5,但目前不是。

我甚至試過這種

Date utcDate=new Date(); 
utcDate.setTime(System.currentTimeMillis()); 
long currentTime = utcDate.getTime(); 

,但沒有運氣。

SO上的所有其他答案僅返回當前GMT。 我無法對時區進行硬編碼,因爲它可能位於世界任何地方。

更新:

我不需要我的設備的時區,我需要UNIX時間在我的時區。馬克重複的問題只提供時區,時間日期或日曆甲酸

感謝

+0

的[獲取在給定的時區當前時間:機器人]可能的複製(https://stackoverflow.com/questions/16202956/get-current-time-in-a-given-timezone-android ) – Reaper

+0

[如何在Java中獲取您的時區的當前日期和時間?](https://stackoverflow.com/questions/1305350/how-to-get-the-current-date-and-time-你的時區在爪哇) – Sufian

回答

1

所以我已經解決了這種方式

 Calendar cal = Calendar.getInstance(); 

     TimeZone timeZone = cal.getTimeZone(); 


     Date cals = Calendar.getInstance(TimeZone.getDefault()).getTime(); 

     long milliseconds = cals.getTime(); 

     milliseconds = milliseconds + timeZone.getOffset(milliseconds); 


     long unixTimeStamp = milliseconds/1000L; 

希望它可以幫助別人。

感謝

+0

謝謝你幫助我完全相同的問題。 – kjdion84

相關問題