0

实际上在我的java程序中就像下面的代码......

  String date1=null;
  String formate="IST";
  SimpleDateFormat sourceFormat = new SimpleDateFormat("z");

   SimpleDateFormat gmtFormat = new SimpleDateFormat("'GMT('Z')'");
   date1 = gmtFormat.format(sourceFormat.parse(formate));
   System.out.println(date1);//output GMT(+0530)

听说它给出了正确的值,但时区可能会改变PST---- GMT(-0800)

但我的代码总是只显示GMT(+0530)

请帮我将时区转换ACT,,PST,IST.....etcGMT(+11:00),GMT(-08:00),GMT(+0530).......etc

4

2 回答 2

1
java.text.SimpleDateFormat sourceFormat = new SimpleDateFormat("z");

java.text.SimpleDateFormat gmtFormat = new SimpleDateFormat("'GMT('ZZZ')' zzzz");

java.util.Date date1 = sourceFormat.parse("IST");

TimeZone gmtTime = TimeZone.getTimeZone("IST");

gmtFormat.setTimeZone(gmtTime);

//System.out.println("Source date: " + date1);

System.out.println("   "+ gmtFormat.format(date1));
于 2012-11-08T09:57:57.390 回答
1

在我看来更清洁。

        TimeZone gmtTime = TimeZone.getTimeZone("IST");
        long gmtOffset = gmtTime.getOffset(new Date().getTime())/ TimeUnit.HOURS.toMillis(1);
于 2017-12-19T14:54:39.963 回答