【问题标题】:Java date/calendar ignoring time zone [duplicate]Java日期/日历忽略时区[重复]
【发布时间】:2014-06-03 12:46:37
【问题描述】:

如何忽略日期中的时区?我的意思是我用 8:54 设置了一些 jsf 输入,格式为 HH:mm,在 setter 中我得到 9:54,我认为这是因为时区 GMT+1。如何将此日期转换为忽略时区?当我不知道我使用的是哪个时区时如何转换它。

代码,时间选择器输入的设置器:

public void setDateTest(Date hmm){
    if (hmm!=null){
        int a = hmm.getHours();
        int b = hmm.getMinutes();

        Calendar cal = Calendar.getInstance();
        cal.get(Calendar.ZONE_OFFSET);
        cal.setTime(hmm);

        int a2 = cal.get(Calendar.HOUR);
        int c2 = cal.get(Calendar.HOUR_OF_DAY);
        int b2 = cal.get(Calendar.MINUTE);
    }
}

【问题讨论】:

  • 我们能否看到您获取/解析 8:54 日期以及生成 9:54 日期的代码?
  • 已添加代码。它只是日期组件的设置器。这里那些 a b c 变量值不正确。

标签: java date calendar


【解决方案1】:

如果您使用的是 java.util.Calendar(可能是),则小时索引在 0-11 之间

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#HOUR

因此,如果您为 Calendar.HOUR 提供 8,则实际上是 9。这可能是原因。只是一个意见...

【讨论】:

  • 你也许就像你说的那样,但很奇怪,早上 9 点都返回 10。所以小时忽略时区?
  • 这不对。 Calendar.HOUR 只是用 0 来表示中午和午夜。上午 10 点将是 10 点。
猜你喜欢
  • 2018-12-17
  • 2013-07-25
  • 2020-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2018-06-03
  • 1970-01-01
相关资源
最近更新 更多