Java如何在IST中打印时间

Java如何在IST中打印时间,java,datetime,Java,Datetime,我现在可以得到时间和时区。但它总是印在纸上 Wed May 23 11:01:08 GMT+05:30 2012 作为时区,我将获得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 al

我现在可以得到时间和时区。但它总是印在纸上

Wed May 23 11:01:08 GMT+05:30 2012
作为时区,我将获得
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
我尝试过各种各样的事情,但都没有成功。我使用了
日历
,但仍然无法打印
IST


有谁能告诉我如何及时打印
IST
(即使我不想打印
印度标准时间

您还没有显示您在哪里实际使用
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,在哪个平台上?

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

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”)

我将在格林威治标准时间11:30:20+05:30获得广告时间2012.05.23的


什么进来,什么出来都一样。

还有一个问题是“我不想在这里修复IST。它可以是EDT或其他东西。我怎么做?@rock:你可以使用
时区。getTimeZone
来获取
时区。不过根据我的评论,你应该使用奥尔森时区ID(“欧洲/伦敦”等)如果可能的话,请不要使用缩写-缩写不明确。在计算机中运行时,它会在末尾打印IST。但在手机中不会device@AnbarasuChinna当前位置如果没有更多信息,恐怕我们无法帮助您。我建议您提出一个更详细的新问题。您好@JonSkeet。您的回答非常有帮助我试过上面提到的代码,但是我的时区是MUT。看起来Java类不理解MUT时区。所以它给我带GMT后缀的日期。你能帮我解决这个问题吗?