5

我目前能够获得时间和时区。但它总是印在

Wed May 23 11:01:08 GMT+05:30 2012

作为 TimeZone 我得到了GMT+05:30。而不是这个我想打印IST

我试过

 SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");

但我仍然得到GMT+05:30

TimeZone.getDefault().getDisplayName(true, TimeZone.SHORT); is also givine me GMT+05:30

我尝试了各种事情,但没有得到欲望输出。我用过Calender但还是不能打印IST

谁能告诉我如何及时打印IST(即使我不想打印Indian standard time

4

2 回答 2

8

你还没有显示你实际在哪里使用SimpleDateFormat. 这是一个简短但完整的示例,它确实显示了 IST:

import java.text.*;
import java.util.*;

class Test {
    public static void main(String[] args) {
        SimpleDateFormat sd = new SimpleDateFormat(
            "yyyy.MM.dd G 'at' HH:mm:ss z");
        Date date = new Date();
        // TODO: Avoid using the abbreviations when fetching time zones.
        // Use the full Olson zone ID instead.
        sd.setTimeZone(TimeZone.getTimeZone("IST"));
        System.out.println(sd.format(date));
   }
}

我机器上的输出:

2012.05.23 AD at 11:18:08 IST

请注意,如果TimeZone.getDefault()未显示“IST”,则问题可能是:

  • 系统实际上无法识别您的系统时区
  • 您的 Java 安装没有关于 i18n 的完整时区信息

您使用的是哪个版本的 Java,在什么平台上?

于 2012-05-23T05:48:05.747 回答
0

似乎您的时区设置错误。以下代码将打印2012.05.23 AD at 11:30:20 IST

TimeZone.setDefault(TimeZone.getTimeZone("IST"));
SimpleDateFormat f = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z");
System.out.println(f.format(new Date()));

但是,如果我使用TimeZone.setDefault(TimeZone.getTimeZone("GMT+05:30"));

我会得到2012.05.23 AD at 11:30:20 GMT+05:30

进来的,出来的都是一样的。

于 2012-05-23T06:05:00.967 回答