Преобразование UT C время, полученное из API погоды в местное время - PullRequest
0 голосов
/ 05 мая 2020

Я вызываю текущий ответ API погоды от https://openweathermap.org/current

В ответе API указано значение захода и восхода солнца, например: «восход»: 1560343627, «закат»: 1560396563 Параметр единица измерения записывается как Время заката, Unix, UT C

Я знаю местоположение, и теперь я хочу преобразовать это время в местное время места. Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 05 мая 2020

Используйте классы java .time .

int millisSinceEpoch = Integer.parseInt( "1560343627" ) ;
Instant instant = Instant.ofEpochMilli( millisSinceEpoch ) ;

Этот объект Instant представляет момент, как видно в UT C. Вы можете настроить часовой пояс, чтобы увидеть тот же момент через время на настенных часах, используемое людьми из определенного региона.

ZoneId z = ZoneId.of( "Pacific/Auckland" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
0 голосов
/ 05 мая 2020

Для преобразования метки времени в текущее время

Calendar calendar = Calendar.getInstance();
TimeZone tz = TimeZone.getDefault();
calendar.add(Calendar.MILLISECOND, tz.getOffset(calendar.getTimeInMillis()));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
java.util.Date currenTimeZone=new java.util.Date((long)1379487711*1000);
Toast.makeText(TimeStampChkActivity.this, sdf.format(currenTimeZone), Toast.LENGTH_SHORT).show();

Надеюсь, это сработает

Спасибо! Удачного кодирования!

...