我正在尝试使用Open Weather map API在Android中创建天气应用。当我从API解析JSON响应时,所有城市的日出和日落时间都以当地时间(IST)显示。
我终于找到了如何根据时区更改时间。我已将偏移量添加到时间戳中,以便获取该特定时区的时间。但是,在格式化Linux时间戳时,我得到了所有城市的“ GMT + 05:30” ,并非如此。
long timeinMSSR = Long.parseLong(sunriseStr);
timeinMSSR = timeinMSSR - 19800 + timezone; // This app works in IST and India is 19800 seconds ahead of GMT. Hence Subtracting it from Linux timestamp. "timezone" is the variable that holds offset.
timeinMSSR = (timeinMSSR*1000);
Date dObjSR = new Date(timeinMSSR);
SimpleDateFormat timeFormatSR = new SimpleDateFormat("HH:MM a z");
String timeSunrise = timeFormatSR.format(dObjSR);
对于哥印拜陀市,Linux时间戳为 1560904222 ,当我格式化时,得到的时间是: 06:06 am GMT + 05:30 。这是正确的。
但是对于伦敦来说,Linux时间戳是 1560915765 ,当我格式化时,我会得到: 04:06 am GMT + 05:30 。但是,预期输出为:格林尼治标准时间上午04:46 + 01:00 。请帮助我获得正确的输出。
答案 0 :(得分:0)
使用setTimeZone
SimpleDateFormat timeFormatSR = new SimpleDateFormat("HH:MM a z");
timeFormatSR.setTimeZone(TimeZone.getTimeZone("UTC"));