How to get current UTC or GMT date time in millis in android instead of getting device's current date time
本问题已经有最佳答案,请猛点这里访问。
我想以毫秒获得当前的UTC日期时间。
但是我用于此的每个代码都会返回设备的当前日期时间。
当我改变我的设备的日期时,它显示我变成了一个时间。
所以,我希望获得GMT / UTC日期时间,这样即使用户更改了他/她的设备的日期和时间,它也会显示正确的日期。
我试过的代码:
1 2 | Calendar calendar = Calendar.getInstance(); long now = calendar.getTimeInMillis(); |
和
1 2 3 4 | DateFormat df = DateFormat.getTimeInstance(); df.setTimeZone(TimeZone.getTimeZone("UTC")); String gmtTime = df.format(new Date()); Date gmtDate = df.parse(gmtTime); |
实际上我想在2017年11月15日下午5点使用AlarmManager设置闹钟,接收该事件隐藏我的应用程序中的一些活动,我不想在此日期,时间之后显示。
我该如何实现这一目标?
提前致谢!
用这个 ....
1 2 3 4 5 6 7 8 9 10 | Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTimeInM??illis() for eg. Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); long timeInMili = calendar .getTimeInMillis(); or Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); long timeInMili = calendar .getTimeInMillis(); |
无法独立从设备获取正确的时间,如果您使用的是Google Location Provider,则getTime()将返回GPS信号的派生时间,否则使用服务器时间。
1 2 3 4 5 | long timestampMilliseconds =System.currentTimeMillis(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z", Locale.US); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); String stringDate = simpleDateFormat.format(new Date(timestampMilliseconds)); System.out.println(stringDate); |
如果你想得到utc只是改变时间zsone
试试