我想检索印度的GMT(5.5)或其他国家/地区。以下是我使用Google Time Zone API的代码,即将发布的响应是dstoffset,rawOffset,status,timeZoneId,timeZoneName。我的问题是如何获得GMT(5.5)谢谢
final String registerURL = "https://maps.googleapis.com/maps/api/timezone/json?location=30.293461,78.524094×tamp=1331161200&key=API_KEY";
StringRequest stringRequest = new StringRequest(Request.Method.POST, registerURL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject obj = new JSONObject(response);
String s1 = obj.getString("dstOffset");
String s2 = obj.getString("rawOffset");
String s3 = obj.getString("status");
String s4 = obj.getString("timeZoneId");
String s5 = obj.getString("timeZoneName");
TimeZone tz1 = TimeZone.getTimeZone(s4);
TimeZone tz2 = TimeZone.getTimeZone(s4);
tvTimeZone.setText(String.valueOf(tz2));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
// Handles errors that occur due to Volley
public void onErrorResponse(VolleyError error) {
Log.e("Volley", "Error");
}
}
);
RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
requestQueue.add(stringRequest);
答案 0 :(得分:2)
rawOffset
是给定位置与UTC的偏移量(以秒为单位)。
由于UTC和GMT之间没有时差,将rawOffset
除以3600即可获得所请求时区的GMT时间。
显然,当除以3600时,答案是在hour:min
对中的小时内。因此,如果您获得输出,例如4.50
,那么实际上4.5 hours
与4:30 hours (4 hours 30 minutes)
相同。