获取特定时区的SimpleDateFormat

Ivo*_*ers 2 timezone android locale

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

new SimpleDateFormat("HH:mm", new Locale("nl", "NL")).format(new Date(time*1000));
Run Code Online (Sandbox Code Playgroud)

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

这是荷兰的07:40,但它似乎只需要你正在使用的设备的时区.在三星Galaxy Tab 2.0上测试过它

我究竟做错了什么?

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

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

ozb*_*bek 10

用途setTimeZone():

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

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

你在这里谈论用户界面吗?如果是这样,那么你无法解决它.只有Google和/或OEM可以向系统添加新的区域设置.