我从RSS提要中输入以下格式的时间:
Wed Jun 13 17:05:44 +0000 2012
我需要输出 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 中无法正常工作。 有解决方案吗请帮忙。
答案 0 :(得分:2)
首先,您需要DateFormat来解析Date对象中的字符串值,然后您可以在Date中设置时区以及您可以在日历对象将使用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);
答案 1 :(得分:-1)
如果我理解正确,你只想设置时区
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setTimeZone("Europe/Paris");
例如,将时区设置为巴黎