我很难显示特定时区的时间。我有一个电视指南之类的应用程序,从服务器获得Unix纪元时间的所有节目的开始时间,我希望时间显示在荷兰,无论应用程序用户在哪里,从任何安卓设备。经过一番研究,我认为它应该是这样工作的:
new SimpleDateFormat("HH:mm", new Locale("nl", "NL")).format(new Date(time*1000));
其中time为历元时间,例如1370497200
现在是荷兰的07:40,但它似乎只需要你正在使用的设备的时区。在三星Galaxy Tab 2.0上进行了测试
我做错了什么?
一个相关问题:根据http://developer.android.com/reference/java/util/Locale.html,我不能假设nl_NL语言环境在每个设备上都可用,我该如何解决这个问题?
旁注:http://www.epochconverter.com/是快速查看某个纪元时间的好方法。
使用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可以为系统添加新的区域设置。