在Android

时间:2017-07-14 10:48:44

标签: android unix time

我使用以下代码获取UNIX中的当前时间

System.currentTimeMillis() / 1000L

但它返回当前的GMT,但我需要UNIX中的设备时间。例如,如果时区是GMT + 5,它应该返回GMT + 5,但目前不是。

我甚至试过这个

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

但没有运气。

SO上的所有其他答案仅返回当前GMT。 我不能对时区进行硬编码,因为它可以在世界任何地方进行编码。

更新

我不需要设备的时区我在TimeZone中需要UNIX时间。 Mark Duplicate问题仅提供时区和Time in Date或Calendar Formate

由于

1 个答案:

答案 0 :(得分: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;

希望它能帮到别人。

由于