将从天气 api 接收到的 UTC 时间转换为本地时间

Convert UTC time recieved from weather api to local time

我正在呼叫当前天气 API 响应来自 https://openweathermap.org/current

API 响应具有如下日落和日出值: "sunrise": 1560343627, "sunset": 1560396563 参数单位写为Sunset time, Unix, UTC

我知道位置,现在我想将这个时间转换为该地点的当地时间。我该怎么做?

用于将时间戳转换为当前时间

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

希望有用

谢谢!编码愉快!

使用java.time类.

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

那个 Instant 对象代表 UTC 中看到的时刻。您可以调整到一个时区,通过某个地区的人们使用的挂钟时间来查看同一时刻。

ZoneId z = ZoneId.of( "Pacific/Auckland" ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
public static String covertUnixToHour(int sunrise){
    Date date = new Date(sunrise* 1000L);
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
    String formatted = sdf.format(date);
    return formatted;
}