我有一个来自我的应用程序的Timestamp值.用户可以在任何给定的本地TimeZone中.
由于此日期用于假定给定时间始终为GMT的WebService,因此我需要将用户的参数从say(EST)转换为(GMT).这是踢球者:用户不知道他的TZ.他进入了他想要发送给WS的创建日期,所以我需要的是:
用户输入: 2008年5月1日下午6:12(美国东部时间)
WS的参数必须是:2008年5月1日下午6:12(格林威治标准时间)
我知道默认情况下TimeStamps总是应该是GMT,但是在发送参数时,即使我从TS创建我的日历(应该是GMT),除非用户使用GMT,否则小时总是关闭.我错过了什么?
Timestamp issuedDate = (Timestamp) getACPValue(inputs_, "issuedDate");
Calendar issueDate = convertTimestampToJavaCalendar(issuedDate);
...
private static java.util.Calendar convertTimestampToJavaCalendar(Timestamp ts_) {
java.util.Calendar cal = java.util.Calendar.getInstance(
GMT_TIMEZONE, EN_US_LOCALE);
cal.setTimeInMillis(ts_.getTime());
return cal;
}
Run Code Online (Sandbox Code Playgroud)
使用前面的代码,这就是我得到的结果(简单格式,便于阅读):
[2008年5月1日下午11:12]