在IST时区java中生成时间戳

时间:2015-01-16 10:12:23

标签: java timezone timestamp gmt

我正在尝试在GMT时区生成当前时间戳,但是当我的机器设置为IST时,它仍在IST中生成。我正在使用此代码。 请帮忙!!

{      String timeZone = "GMT";
   Calendar gmtCalendar =          Calendar.getInstance(TimeZone.getTimeZone(timeZone)); 
   Date date = gmtCalendar.getTime();
   endTime = new Timestamp(date.getTime());
   String eTime = NLSUtil.getFormattedDate(AdfUtil.getClientLocale(), new    java.sql.Date(endTime.getTime()));
}

3 个答案:

答案 0 :(得分:1)

我不知道NLSUtil是什么(你能详细说明吗?)但时间格式也有一个时区(默认为机器的时区,在你的情况下是IST?)

Date toPrint = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z");
format.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(format.format(toPrint));
format.setTimeZone(TimeZone.getTimeZone("PST"));
System.out.println(format.format(toPrint));

打印:

2015-01-16 10:18:34.604 GMT
2015-01-16 02:18:34.604 PST

答案 1 :(得分:0)

 SimpleDateFormat dateFormatGmt = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));

//Local time zone   
SimpleDateFormat dateFormatLocal = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");

//Time in GMT
System.out.println(dateFormatLocal.parse( dateFormatGmt.format(new Date()) ));

请参阅here

答案 2 :(得分:0)

在获取实例之前添加TimeZone.setDefault(TimeZone.getTimeZone("UTC"));