我必须获得 UTC+5:45 的本地时间。我找到了代码并实现了它,但是时间会随着时间的推移而更新。如何在不更新的情况下修复它? 这是我实现的代码:
Date localTime = new Date();
String format = "yyyy/MM/dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setTimeZone(TimeZone.getTimeZone("UTC+5:45"));
Date gmtTime = new Date(sdf.format(localTime));
System.out.println("Local:" + localTime.toString() + "," + localTime.getTime() + " --> UTC time:"
+ gmtTime.toString() + "," + gmtTime.getTime());
Date fromGmt = new Date(gmtTime.getTime() + TimeZone.getDefault().getOffset(localTime.getTime()));
return String.valueOf(fromGmt);
最佳答案
当你使用时:
Date localTime = new Date();
你得到当前时间。 所以每次你调用 new Date();时间会有所不同。 您只需调用一次 new Date() 并将该对象用于其余代码。 如果您需要 2 个不同时区的 Date 对象,请使用:
Date localTime = new Date();
Date newDate = new Date(localTime.getTime());
这样您就可以同步 2 次。
日期没有时区,因此您必须指定年份、月份和日期以及具体时间。
关于android - 你如何获得本地时间并且在时间变化时不更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52646151/