【问题标题】:Timezone becomes GMT although I am overriding the timezone尽管我覆盖了时区,但时区变为 GMT
【发布时间】:2016-03-01 11:44:19
【问题描述】:

这是我的代码 sn-p。我的本地时区是“亚洲/孟买”。

    SimpleDateFormat isoFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm a");
    Date date1 = isoFormat.parse("03/01/2016 09:01 AM");
    isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Mumbai"));

    isoFormat.applyPattern("dd MMM yyyy HH:mm:ss z");
    System.out.println("Current Date and Time in IST time zone: " + isoFormat.format(date1));

但在我得到的输出中:

IST 时区的当前日期和时间:2016 年 3 月 1 日 03:31:00 GMT

谁能告诉为什么覆盖也是我当地时区的时区可以将其更改为格林威治标准时间?

虽然相同的代码适用于 JST 或 SGT。

    isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Singapore"));
    isoFormat.applyPattern("dd MMM yyyy HH:mm:ss z");
    System.out.println("Current Date and Time in SGT time zone: " + isoFormat.format(date1));

    isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
    isoFormat.applyPattern("dd MMM yyyy HH:mm:ss z");
    System.out.println("Current Date and Time in JST time zone: " + isoFormat.format(date1));

输出:

SGT 时区的当前日期和时间:2016 年 3 月 1 日 11:31:00 SGT

JST 时区的当前日期和时间:2016 年 3 月 1 日 12:31:00 JST

【问题讨论】:

    标签: java calendar


    【解决方案1】:

    【讨论】:

    【解决方案2】:

    试试下面的代码:

    isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 1970-01-01
      • 2014-06-12
      • 2012-02-04
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 2023-01-25
      • 2018-12-25
      相关资源
      最近更新 更多