我使用以下代码获取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
由于
答案 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;
希望它能帮到别人。
由于