【问题标题】:Output mismatch While converting one time zone to another time zone输出不匹配 将一个时区转换为另一个时区
【发布时间】:2015-07-16 13:04:25
【问题描述】:

我尝试将日期时区转换为另一个时区,我尝试使用以下代码进行转换,但它不起作用。

我正在使用 JDK 1.3。我的目标是拥有相同的时间“2015 年 5 月 6 日星期三 10:08:54 BST”,但时区戳不同。所以我的预期输出是:“Wed May 6 10:08:54 IST 2015”。我不想计算差异。

我的代码:

public static void main(String[] args) {
        try{
              Test obj= new Test();
              String date="Wed May  6 10:08:54 BST 2015";
            System.out.println("Given Date = "+date);
            Date dt=obj.getServerDate(date);
            System.out.println("Returned Date = "+dt);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

    }
    public Date getServerDate(String str_date)
    {
        if (str_date == null)
            return null;
        Date pars_date = null;
        try
        {
            DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy", Locale.ENGLISH);
            pars_date = sdf.parse(str_date); 
            sdf.setTimeZone(TimeZone.getTimeZone("IST"));
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
        return pars_date;
}

当我执行上面的代码时,我得到了以下输出:

Given Date = Wed May  6 10:08:54 BST 2015
Returned Date = Wed May 06 14:38:54 IST 2015

返回的日期不匹配,我尝试了很多来解决这个问题,但我不能。分享你的想法来解决这个问题。

注意:我不想要 Joda Time 日历 提前致谢。

【问题讨论】:

  • 您期待什么?怎么回事?
  • 您使用的是哪个 Java 版本? Java8 中的日期处理发生了变化。
  • 你说返回的时间是正确的。我期待像 Wed May 6 10:08:54 IST 2015 @Brett Walker 这样的输出
  • 2015 年 5 月 6 日星期三 10:08:54 BST 2015 年 5 月 6 日星期三 14:38:54 IST 2015。我在这里看不到问题。您想在 BST 中花点时间并使其成为相同的时间和日期,但在 IST 中?
  • @KaviChinna 请阅读stackoverflow.com/questions/2873119/… 解决方案基本上是从原始日期对象重建数据,但注入您自己的时区。尝试转换对象也会影响其余时间/日期。

标签: java date


【解决方案1】:

您返回的时间是正确的 BST+1:00IST+5:30 所以当它是 10:08:54伦敦是 14:38:54 在新德里。

【讨论】:

    【解决方案2】:

    如果您想在不更改时间/日期的情况下更改时区并且不想使用 Joda,您需要首先将字符串解析为日期对象,然后使用旧日期对象中的值重建一个新的日期对象但注入您自己的时区。更改日期格式化程序上的时区也会更改时间/日期。

    附:见Changing timezone without changing time in Java

    【讨论】:

      猜你喜欢
      • 2012-10-27
      • 1970-01-01
      • 2014-02-11
      • 2019-04-14
      • 2015-02-21
      • 2012-01-30
      • 2015-05-06
      • 2021-01-23
      相关资源
      最近更新 更多