У меня есть ввод времени в следующем формате из RSS-канала:
Ср 13 июн 17:05:44 +0000 2012
и мне нужен вывод как Wed Jun 13, 2012 22:35:44
Исходное время будет всегда в GMT, а требуемое время выхода будет в часовом поясе устройства (это может быть GMT + 5: 30 или GMT-2: 00 или любое).
Итак, во-первых, у меня есть экземпляр календаря с GMT, как показано ниже.
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
Затем изменили календарь, как показано на рисунке, используя StringTokenizer во время ввода.
calendar.set(Calendar.DAY_OF_MONTH, date);
calendar.set(Calendar.MONTH, month);
.
.
etc.
Затем у меня есть следующий код:
calendar.setTimeZone(TimeZone.getDefault());
В основном вышеуказанный код изменяет календарь на часовой пояс устройства. Теперь дело в том, что приведенный выше код работает нормально в обычной среде, но не работает в Android. Любое решение? Пожалуйста помоги.
Сначала вам понадобилось DateFormat для анализа строкового значения в объекте Date, а затем вы можете установить Timezone в Date, а также вы можете сделать объект Calendar с помощью Date, что объект календаря будет вашим экземпляром часового пояса вашего устройства.
Ниже код работает на моей стороне
String input_format = "EEE MMMMM dd HH:mm:ss Z yyyy";
String input_value="Wed Jun 13 17:05:44 +0000 2012";
Date date=null;
SimpleDateFormat sdf = new SimpleDateFormat(input_format);
try {
date = sdf.parse(input_value);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = sdf.getCalendar();
calendar.setTime(date);
если я понимаю это правильно, вы просто хотите установить timezome
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setTimeZone("Europe/Paris");
это, например, установить часовой пояс в Париж