2

我很难显示特定时区的时间。我有一个电视指南之类的应用程序,它可以从服务器获取 Unix 纪元时间中的所有程序开始时间,我希望无论应用程序用户在哪里以及来自任何 android 设备,都可以在荷兰的时间显示时间。经过一番研究,我认为它会像这样工作:

new SimpleDateFormat("HH:mm", new Locale("nl", "NL")).format(new Date(time*1000));

其中时间是一个纪元时间,例如 1370497200

这是荷兰的 07:40,但它似乎只需要您使用的设备的时区。在三星 Galaxy Tab 2.0 上进行了测试

我究竟做错了什么?

一个相关问题:根据http://developer.android.com/reference/java/util/Locale.html我不能假设 nl_NL 语言环境在每台设备上都可用,我将如何解决这个问题?

旁注:http ://www.epochconverter.com/是快速查看某个纪元时间的好方法。

4

1 回答 1

10

使用setTimeZone()

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm", new Locale("nl", "NL"));
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Europe/Amsterdam"));

一个相关问题:根据http://developer.android.com/reference/java/util/Locale.html我不能假设 nl_NL 语言环境在每台设备上都可用,我将如何解决这个问题?

你是说这里的 UI 吗?如果是这样,那么你无法解决它。只有 Google 和/或 OEM 可以向系统添加新的语言环境。

于 2013-06-06T17:53:29.947 回答