Java 将GMT作为时区而不是HST或PDT

Java 将GMT作为时区而不是HST或PDT,java,android,timezone,simpledateformat,Java,Android,Timezone,Simpledateformat,我试图在日志文件中用时区值显示当前时间戳。但我可以观察到,对于同一位置的两个不同用户,时区的打印方式不同 对于一个用户,它以HST作为区域id显示,对于另一个用户,它以GMT显示 GMT的此问题发生在Note 2设备中,Note 4中没有问题 下面是我如何获得时间戳的代码 try { Date date = new Date(); DateFormat df = new SimpleDateFormat("MM/dd/yyyy z:hh:mm:ss a");

我试图在日志文件中用时区值显示当前时间戳。但我可以观察到,对于同一位置的两个不同用户,时区的打印方式不同

对于一个用户,它以HST作为区域id显示,对于另一个用户,它以GMT显示

GMT的此问题发生在Note 2设备中,Note 4中没有问题

下面是我如何获得时间戳的代码

  try {
        Date date = new Date();
        DateFormat df = new SimpleDateFormat("MM/dd/yyyy z:hh:mm:ss a");
        df.setTimeZone(TimeZone.getDefault());
        currentTimeStamp = df.format(date);
    } 
    catch (Exception e) {
        Log.e("Logger", "Error in getCurrentTimeStamp = " + e.getMessage(),e);
    }
我期待的是这样的事情

  05/02/2015 HST:09:43:46 AM 
但在注释2中,它总是给我

  GMT-10:00:09:43:46 AM 
我试着改变手机的默认时区,但还是没有成功


谁能解释一下HST是GMT-10,所以它给出了正确的时间,只是格式不同

格林威治标准时间比夏威夷标准时间提前10小时 夏威夷标准时间(HST)周四下午7:04 格林威治标准时间(GMT)周五上午5:04


使用
Use DateFormat df=new SimpleDateFormat(“MM/dd/yyyy z:hh:MM:ss a”,Locale.US)
获取时区名称。

是的,我知道了。。但是我只想用HST打印,而不是GMT。这个问题发生在Note2 Device中。您是否尝试过SimpleDateFormat的本地化版本?公共SimpleDataFormat(字符串模板,区域设置)您能解释一下吗?使用DateFormat df=new SimpleDataFormat(“MM/dd/yyyy z:hh:MM:ss a”,Locale.US);你救了我!!!干杯,它起作用了。你能更新你的答案让我接受吗。非常感谢,这真让我受不了