1

我从 RSS 提要中输入了以下格式的时间:

2012 年 6 月 13 日星期三 17:05:44 +0000

我需要输出为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 中不工作。有什么解决办法吗?请帮忙。

4

2 回答 2

2

首先,您需要DateFormat来解析Date对象中的字符串值,然后您可以在 Date 中设置 Timezone 以及您可以借助 Date制作Calendar对象,该日历对象将成为您的设备时区实例。

下面的代码在我身边工作

    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);
于 2012-06-26T07:40:18.780 回答
-1

如果我理解正确,您只想设置 timezome

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

例如,将时区设置为巴黎

于 2012-06-26T06:33:41.037 回答