我想以毫秒为单位获取当前的UTC日期时间。 但是我用于此的每个代码都会返回设备的当前日期时间。 当我改变我的设备的日期时,它显示我变成了一个时间。 所以,我希望获得GMT / UTC日期时间,这样即使用户更改了他/她的设备的日期和时间,它也会显示正确的日期。
我试过的代码:
Calendar calendar = Calendar.getInstance();
long now = calendar.getTimeInMillis();
和
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设置闹钟,接收该事件会隐藏我的应用中的一些活动,我不想在此日期,时间之后显示。
我怎样才能实现这个目标?
提前致谢!
答案 0 :(得分:1)
使用此....
Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTimeInMillis()
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();
答案 1 :(得分:0)
尝试TimeUnit.MILLISECONDS.convert(System.nanoTime(), TimeUnit.NANOSECONDS);
答案 2 :(得分:0)
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
答案 3 :(得分:0)
无法独立从设备获取正确的时间,如果您使用的是谷歌位置提供商,则getTime()将返回GPS信号的派生时间,否则使用服务器时间。