我有一个来自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");
例如,将时区设置为巴黎