【问题标题】:Getting GMT as timezone instead of HST or PDT将 GMT 作为时区而不是 HST 或 PDT
【发布时间】:2015-07-18 21:58:57
【问题描述】:

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

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

在 Note 2 设备中发生 GMT 的这个问题,在 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 

我尝试更改手机的默认时区仍然没有成功。

谁能解释一下

【问题讨论】:

    标签: java android timezone simpledateformat


    【解决方案1】:

    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 中打印。而这个问题发生在 Note 2 设备上
    • 您尝试过 SimpleDateFormat 的本地化版本吗? public SimpleDateFormat(字符串模板,Locale locale)
    • 你能解释一下吗?
    • 使用 DateFormat df = new SimpleDateFormat("MM/dd/yyyy z:hh:mm:ss a", Locale.US);
    • 你救了我!!!干杯,它有效。您能否更新您的答案,以便我接受。非常感谢,这让我很生气
    猜你喜欢
    • 2017-02-05
    • 1970-01-01
    • 2019-12-29
    • 2020-11-12
    • 2012-05-02
    • 2022-01-09
    • 1970-01-01
    • 2019-10-21
    • 2018-03-02
    相关资源
    最近更新 更多