Как вы получаете местное время и не обновляете его при изменении времени? - PullRequest
0 голосов
/ 04 октября 2018

Мне нужно получить местное время 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);

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

При использовании:

Date localTime = new Date();

Вы получаете текущее время.Поэтому каждый раз, когда вы вызываете новую дату ();время будет другим.Вы должны вызывать new Date () только один раз и использовать этот объект для остальной части вашего кода.Если вам нужны 2 объекта Date из разных часовых поясов, используйте:

Date localTime = new Date();
Date newDate = new Date(localTime.getTime());

Таким образом, вы синхронизируете 2 раза.

Дата не имеет часового пояса, поэтому вам нужно указать годмесяц и день, а также время для уточнения.

0 голосов
/ 04 октября 2018
   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);
0 голосов
/ 04 октября 2018

фрагмент кода, который вы предлагаете, заставляет меня думать, что это метод, который возвращает форматированное местное время, убедитесь, что этот метод вызывается только один раз, чтобы получить время.И если вы создаете приложение для Android, вы можете использовать Log вместо System.out.println.

...