如何在 Linux Time 中更改时区? [复制]

Posted

技术标签:

【中文标题】如何在 Linux Time 中更改时区? [复制]【英文标题】:How to change time zone in Linux Time? [duplicate] 【发布时间】:2019-11-01 18:14:00 【问题描述】:

我正在尝试使用 Open Weather map API 在 android 中创建一个天气应用程序。当我从 API 解析 JSON 响应时,所有城市的日出和日落时间都以当地时间 (IST) 显示。

我终于找到了如何根据时区更改时间。我已将偏移量添加到时间戳中,以便获取该特定时区的时间。但是,在格式化 Linux 时间戳时,我得到了所有城市的 "GMT+05:30",但情况并非如此。

long timeinMs-s-r = Long.parseLong(sunriseStr);
            timeinMs-s-r = timeinMs-s-r - 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.
            timeinMs-s-r = (timeinMs-s-r*1000);
            Date dObjSR = new Date(timeinMs-s-r);
            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 am GMT+01:00。请帮助我获得正确的输出。

【问题讨论】:

【参考方案1】:

使用setTimeZone

SimpleDateFormat timeFormatSR = new SimpleDateFormat("HH:MM a z");
timeFormatSR.setTimeZone(TimeZone.getTimeZone("UTC"));

【讨论】:

以上是关于如何在 Linux Time 中更改时区? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

linux更改时区和时间的命令

如何更改 Fabric 中的时区? [复制]

如何修改Linux时区时间

更改Linux时区的两种方法

如何将linux 的本地时间设置为utc时间

Linux系统如何更改时间时区