根据服务器响应在Android App中设置时区

时间:2016-12-20 11:19:45

标签: android customization gmt

我正在做一些场景的工作 ,我从服务器接收日期和时间作为数据字段。 即 2016-12-20T16:22:00 + 05:00 。 我有一个旋转器

*

  • (+ 12:00至-12:00)每小时的值

* 现在,我需要改变这个日期&关于微调值的时间。 即如果微调器选择+12:00 那会是这样的 的 2016-12-21T04:22:00 + 12:00 即可。 请建议解决方案。 谢谢:))

2 个答案:

答案 0 :(得分:1)

尝试使用下面的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);

答案 1 :(得分:0)

试试这个方法

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();
}