Java 将GMT转换为设备时区的代码不工作
我有一个来自RSS提要的以下格式的时间输入: 2012年6月13日星期三17:05:44+0000 我需要输出为2012年6月13日星期三22:35:44 源时间将始终以GMT为单位,所需的输出时间将在设备时区内(可能是GMT+5:30或GMT-2:00或任何时间) 首先,我有一个带有GMT的日历实例,如下所示Java 将GMT转换为设备时区的代码不工作,java,android,calendar,timezone,Java,Android,Calendar,Timezone,我有一个来自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")); 然后在输入时间使用StringTokeni
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中不起作用。
有解决办法吗?请帮忙。如果我理解正确,您只需要设置timezome
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setTimeZone("Europe/Paris");
例如,将时区设置为巴黎如果我理解正确,您只需要设置timezome
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setTimeZone("Europe/Paris");
例如,将时区设置为Paris,首先需要解析对象中的字符串值,然后可以在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);
首先,您需要解析对象中的字符串值,然后您可以在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);
谢谢朋友,这里你用“欧洲/巴黎”作为新时区。但在我的应用程序中,我不知道用户的时区。i、 e.输出时间可能因不同用户而异。好的,我理解,我不确定,但也许这个链接可以帮助您我已经检查过了,但没有这种方法来转换时区。谢谢朋友,这里您使用了“欧洲/巴黎”作为新时区。但在我的应用程序中,我不知道用户的时区。i、 e.输出时间可能因不同的用户而异。好的,我理解,我不确定,但也许这个链接可以帮助您我已经检查过了,但没有这样的方法来转换时区。只是好奇-什么时区距离GMT 5小时30分钟?输入时区是GMT。输出时间基于用户。如果用户在印度,则其GMT+5:30;如果用户在巴基斯坦,则其GMT+5:00,依此类推。请检查代码“calendar.setTimeZone(TimeZone.getDefault());”,它与普通java项目一样工作,但不像Android那样工作只是好奇-距离GMT 5小时30分钟是什么时区?输入时区是GMT。输出时间基于用户。如果用户在印度,则其GMT+5:30;如果用户在巴基斯坦,则其GMT+5:00,依此类推。请检查代码“calendar.setTimeZone(TimeZone.getDefault());”,它与普通java项目一样工作,但与Androides不同。。它不仅在IST(格林尼治标准时间+5:30)而且在所有时区都能正常工作。谢谢..是的。。它不仅在IST(格林尼治标准时间+5:30)而且在所有时区都能正常工作。谢谢