【问题标题】:code for converting GMT to device time zone not working将 GMT 转换为设备时区的代码不起作用
【发布时间】:2012-06-27 10:39:12
【问题描述】:

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

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

我需要输出为 2012 年 6 月 13 日星期三 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 中不工作。 有什么解决办法吗?请帮忙。

【问题讨论】:

  • 只是好奇 - 格林威治标准时间 5 小时 30 分钟是哪个时区?
  • 输入时区为GMT。输出时间取决于用户。如果用户在印度,则为 GMT+5:30,如果在巴基斯坦,则为 GMT+5:00,依此类推。请检查代码“calendar.setTimeZone(TimeZone.getDefault());”这是正常的java项目,但不是android

标签: java android calendar timezone


【解决方案1】:

如果我没听错的话,你只是想设置timezome

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

例如,将时区设置为巴黎

【讨论】:

  • 感谢朋友,您在这里使用“欧洲/巴黎”作为新时区。但在我的应用程序中,我不知道用户的时区。即输出时间可能因不同用户而异。
  • 好的,我明白了,我不确定,但也许这个链接可以帮助你developer.android.com/reference/java/util/TimeZone.html
  • 我已经检查过了,但是没有这种方法可以转换时区。
【解决方案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);

【讨论】:

  • 是的.. 它的工作和工作完美。不仅在 IST(GMT+5:30),而且在所有时区。谢谢..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多