Android преобразование времени - PullRequest
0 голосов
/ 09 октября 2018

Я сделал код ниже, чтобы изменить время с UTC на другой часовой пояс, но код показывает только время UTC. Также после форматирования в исходный формат времени он показывает системный часовой пояс.

private String setTimezone(String time){
sourceformatter = new SimpleDateFormat("hh:mm a, E dd MMM yyyy");
dateFormatter = new SimpleDateFormat("hh:mm a");

sourceformatter.setTimeZone(TimeZone.getTimeZone("UTC"));
    Log.e("reicievedformat",time);
Date value = null;
try {
    value = sourceformatter.parse(time);
} catch (ParseException e) {
    e.printStackTrace();
}
Log.d("afterfirstformat",dateFormatter.format(value));
dateFormatter.setTimeZone(TimeZone.getTimeZone("IST"));
time =dateFormatter.format(value);
    Log.d("Finaltime",time);
return time;
}

Вывод : - логарифмические значения

  • E / reictainedformat: 12:36 PM, понедельник, 8 октября 2018

  • D /afterfirstformat: 18:21

  • D / Конечное время: 12:36 PM

Как видите, я получаю 12: 36:00, понедельник, 8 октября 2018 года («UTC»), и я хочу преобразовать в IST, но окончательное время, 12:36 PM, похоже, не было преобразовано.

Ответы [ 2 ]

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

Попробуйте это

public static String getDateOut(String ourDate) {
        try
        {
            //be sure that passing date has same format as formatter
            SimpleDateFormat formatter = new SimpleDateFormat("hh:mm a, E dd MMM yyyy");
            formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
            Date value = formatter.parse(ourDate);

            SimpleDateFormat dateFormatter = new SimpleDateFormat("hh:mm a"); //this format changeable
            dateFormatter.setTimeZone(TimeZone.getTimeZone("IST"));
            ourDate = dateFormatter.format(value);

        }
        catch (Exception e)
        {
            ourDate = "00-00-0000 00:00";
        }
        return ourDate;
    }
0 голосов
/ 09 октября 2018

IST в Java означает «стандартное время Израиля».Используйте это для «индийского стандартного времени»

dateFormatter.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));

API даты и времени в Java доставляют вам головную боль.Я использую эту библиотеку Даниэль Лью .https://github.com/dlew/joda-time-android

...