我使用eclipse創建了一個簡單的GWT示例,我只向GreetingService添加了一個自動生成的方法。當url有gwt.codesvr時,GWT的行爲有所不同
Date greetServer2() ;
它實現象下面這樣:
public Date greetServer2(){
// TODO Auto-generated method stub
//
String s = "2014/04/08";
DateFormat inputFormatter = new SimpleDateFormat("yyyy/MM/dd");
Date date=null;
try {
date = inputFormatter.parse(s);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return date;
}
在客戶端,我只是顯示在彈出日期:
greetingService.greetServer2(new AsyncCallback<Date>() {
public void onFailure(Throwable caught) {
// Show the RPC error message to the user
...
}
public void onSuccess(Date result) {
Window.alert(result.toString());
}
});
我通過Eclipse運行它,Eclipse生成的URL是:
http://127.0.0.1:8888/HelloGWT.html?gwt.codesvr=127.0.0.1:9997
彈出式贏陶氏表示,「週二4月8日00:00:00 CLST 2014」
但是,如果我沒有訪問參數gwt.codesvr:
http://127.0.0.1:8888/HelloGWT.html
彈出窗口說:「週一年4月7 23:00:00 GMT- 400 2014「
我的GWT是2.5.1,我的JDK是1.7.0_25。
任何線索?
在此先感謝。
嗨,客戶端(瀏覽器)和服務器都在同一檯筆記本電腦上。我使用的時區是(UTC-04:00聖地亞哥)。實際上,我編寫這個例子的原因是因爲我遇到了一些時區問題,我嘗試去調試它,但是在正常運行和調試模式下,gwt應用程序的行爲有所不同,這會導致很多混淆。 – morven
然後使用DateFormat並傳遞時區。使用'date.toString()'不會幫助你找到問題 - 你有相同的日期,只是用Java和JavaScript顯示不同。 –
感謝您的回覆,我用它來格式化日期:ateTimeFormat f = DateTimeFormat.getFormat(「yyyy.MM.dd G HH:mm:ss vvvv」); TimeZoneConstants t =(TimeZoneConstants)GWT.create(TimeZoneConstants.class); TimeZone tz = TimeZone.createTimeZone(t.americaSantiago()); Window.alert(f.format(result,tz));現在這兩種情況都會返回相同的日期字符串,但它是2014年4月7日23:00:00,如果我需要2014-04-08 00:00:00該怎麼辦? – morven