android - 你如何获得本地时间并且在时间变化时不更新它?

标签 android android-studio localtime

我必须获得 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/

相关文章:

android - DialogFragment 和后退按钮

java - AlarmManager 行为不一致(警报触发多次,或根本不触发)

Android Studio 在调用 Java 接口(interface)中的静态方法的 Kotlin 项目中引发构建错误

java - 解析日期时间时出错,带有有效时间戳的 DateTimeParseException

java - 如何将对象的 sql 时间转换为 java 时间?

c - "statically allocated"在 libc 中到底意味着什么?每个库实例一个?每个程序实例一个?

android - 如何在 FloatingActionButton 上显示图标?

android - 如何在Android上绘制音频波形

java - Android Opencv 中的模板匹配

java - 无法解析符号 "actionBarActivity"- Android