我正在尝试在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()));
}
答案 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"));