我现在能够得到时间和时区。但它始终打印在
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
)
答案 0 :(得分:4)
您尚未显示使用 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,以及在哪个平台上使用?
答案 1 :(得分: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
。
进来的内容相同。