code for converting GMT to device time zone not wo

2019-07-23 09:43发布

I have a time input in the following format from a RSS feed:

Wed Jun 13 17:05:44 +0000 2012

and I need output as Wed Jun 13, 2012 22:35:44

The source time will be always in GMT, and the required output time will be in the device time zone(it may be GMT+5:30 or GMT-2:00 or any).

So firstly I have an calendar instance with GMT, as follows.

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));

Then modified the calendar like following using StringTokenizer on input time.

calendar.set(Calendar.DAY_OF_MONTH, date);
calendar.set(Calendar.MONTH, month);
.
.
etc.

Next I have the following code:

calendar.setTimeZone(TimeZone.getDefault());

Basically the above code changes a calendar into device time zone. Now the matter is the above code is working fine in normal environment, but not working in Android. Any solution? Please help.

2条回答
Evening l夕情丶
2楼-- · 2019-07-23 09:48

if i understand it right, you just want to set the timezome

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setTimeZone("Europe/Paris");

this for example set the timezone to Paris

查看更多
兄弟一词,经得起流年.
3楼-- · 2019-07-23 09:56

First you required DateFormat to parse string value in Date object and then you can set Timezone in Date as well as you can make Calendar object with help of Date that calendar object will be your device timezone instance.

Below code is working at my side

    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);
查看更多
登录 后发表回答