将 GMT 转换为设备时区的代码不起作用



我有一个来自RSS提要的以下格式的时间输入:

周三 6月 13 17:05:44 +0000 2012

我需要输出为 周三 6月 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对象中的字符串值,然后您可以在Date中设置时区,也可以借助日历对象将成为设备时区实例的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);

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

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

例如,将时区设置为巴黎

相关内容

  • 没有找到相关文章

最新更新