Android 如何获取本地时间,并且在时间发生变化时不进行更新?

Android 如何获取本地时间,并且在时间发生变化时不进行更新?,android,android-studio,localtime,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

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

您提供的代码片段使我认为它是一个返回格式化本地时间的方法,请确保只调用一次此方法以获取时间。如果您正在制作Android应用程序,您可以使用Log而不是System.out.println。

当您使用:

Date localTime = new Date();
您可以获得当前时间。 所以每次你打电话给new Date();时间会有所不同。 您只需调用new Date()一次,并在代码的其余部分使用该对象。 如果需要两个不同时区的日期对象,请使用:

Date localTime = new Date();
Date newDate = new Date(localTime.getTime());
这样,您将同步2次


Date没有时区,因此您必须指定年份、月份和日期以及具体的时间。

您好,欢迎使用StackOverflow。请编辑问题以包含您的相关代码,这将使社区能够帮助您。目前我们几乎没有什么事情可做。谢谢。我已经添加了我已经实现的代码。请引导我@MandyShawI不是一个安卓人,我只是查看来自新贡献者的帖子,以检查是否提供了足够的信息。你需要等待Android专家来解决这个问题。作为一个旁白,考虑扔掉那些过时的、臭名昭著的麻烦代码< SimpleDateFormat >代码>和朋友,然后添加到Android项目中,以便使用<代码> java.时间>代码>,java java日期和时间API。和你一起工作真是太好了。特别是当事情变得有点复杂的时候,就像你的问题一样。
   TimeZone.setDefault(TimeZone.getTimeZone("Asia/Calcutta"));
                    String pattern = "yyyy-MM-dd HH:mm:ss";
                    SimpleDateFormat simpleDateFormat = new 
                     SimpleDateFormat(pattern, new Locale("eng", "ind"));
                    String date = simpleDateFormat.format(new Date());
                    Log.i("get C_d_t", date);