根据服务器响应在 Android 应用程序中设置时区
Set Time Zone in Android App on the basis of server response
我正在做一些工作场景是
,我从服务器接收日期和时间作为数据字段。
即 2016-12-20T16:22:00+05:00。
我有一个微调器,其中
*
- (+12:00 到 -12:00)每小时值
*
现在,我需要根据微调器值转换此日期和时间。
即,如果微调器选择了 +12:00
然后它会喜欢这个
2016-12-21T04:22:00+12:00。
请提出解决方案。
谢谢:)
尝试使用如下所示的 Java 字符串函数
String time="2016-12-20T16:22:00+05:00";
String[] s =time.split("'+'");
String time1=s[0];
String value=value from spinner;
SimpleDateFormat readDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
readDate.setTimeZone(TimeZone.getTimeZone("GMT")); // missing line
Date date = null;
try {
date = readDate.parse(time1);
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat writeDate = new SimpleDateFormat("dd.MM.yyyy, HH.mm.ss");
writeDate.setTimeZone(TimeZone.getTimeZone("GMT+"+value));
//final time string
String s1 = writeDate.format(date);
试试这个方法
public String convertTimeZone(String date, String timeZone) throws ParseException {
StringBuffer buffer = new StringBuffer(date);
date = buffer.reverse().toString().replaceFirst(":","");
date = new StringBuffer(date).reverse().toString();
SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
inFormat.setTimeZone(TimeZone.getTimeZone("GMT" + timeZone));
Date toConvert = inFormat.parse(date);
date = inFormat.format(toConvert);
return new StringBuffer(date).insert(date.length()-2, ":").toString();
}
我正在做一些工作场景是 ,我从服务器接收日期和时间作为数据字段。 即 2016-12-20T16:22:00+05:00。 我有一个微调器,其中
*
- (+12:00 到 -12:00)每小时值
* 现在,我需要根据微调器值转换此日期和时间。 即,如果微调器选择了 +12:00 然后它会喜欢这个 2016-12-21T04:22:00+12:00。 请提出解决方案。 谢谢:)
尝试使用如下所示的 Java 字符串函数
String time="2016-12-20T16:22:00+05:00";
String[] s =time.split("'+'");
String time1=s[0];
String value=value from spinner;
SimpleDateFormat readDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
readDate.setTimeZone(TimeZone.getTimeZone("GMT")); // missing line
Date date = null;
try {
date = readDate.parse(time1);
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat writeDate = new SimpleDateFormat("dd.MM.yyyy, HH.mm.ss");
writeDate.setTimeZone(TimeZone.getTimeZone("GMT+"+value));
//final time string
String s1 = writeDate.format(date);
试试这个方法
public String convertTimeZone(String date, String timeZone) throws ParseException {
StringBuffer buffer = new StringBuffer(date);
date = buffer.reverse().toString().replaceFirst(":","");
date = new StringBuffer(date).reverse().toString();
SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
inFormat.setTimeZone(TimeZone.getTimeZone("GMT" + timeZone));
Date toConvert = inFormat.parse(date);
date = inFormat.format(toConvert);
return new StringBuffer(date).insert(date.length()-2, ":").toString();
}