2012-05-04 5 views
1

こんにちは日付は文字列形式です。datePicker in GWT

datevalue = [3月6日06:00:00 CET 2012]。

私のコードでは、textBoxの値が設定されています。 textboxをクリックすると、datepickerが表示されます。

私がしたいことは、datepickerの中での値が何であってもdateが強調表示されるはずです。

と私はdatePickerをクリックすると、テキストの値が [火3月6日6時00分00秒CET 2012]として同じ形式にする必要があります。

マイコードです。エラー

errorjava.lang.IllegalArgumentException: [Tue Mar 06 05:00:00 UTC 2012] 

errorjava.lang.IllegalArgumentException: [Wed May 09 12:00:00 UTC+2 2012] 

のために編集

private TextBox getTimeLable(String datevalue) { 
     // TODO Auto-generated method stub 
     System.out.println("date" + datevalue); 
     final TextBox timebx =new TextBox(); 
     timebx.setReadOnly(true); 
     timebx.setText(datevalue); 
     final PopupPanel popupPanel=new PopupPanel(true); 
     DatePicker datePicker=new DatePicker(); 
     datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() { 

      public void onValueChange(ValueChangeEvent<Date> event) { 
       // TODO Auto-generated method stub 

       Date date=event.getValue(); 
       timebx.setText(DateTimeFormat.getFormat("yyyy-MM-dd").format(date)); 
       popupPanel.hide(); 
      } 
     }); 
     popupPanel.setWidget(datePicker); 
     timebx.addClickHandler(new ClickHandler() { 

      public void onClick(ClickEvent event) { 
       // TODO Auto-generated method stub 
       int x=timebx.getAbsoluteLeft(); 
       int y=timebx.getAbsoluteTop(); 
       popupPanel.setPopupPosition(x, y+20); 
       popupPanel.show(); 
      } 
     }); 

     return timebx; 
    } 

最初のテキストボックスには、この値は[火3月6日5時00分○○秒UTC 2012]です。 しかし、テキストボックスをクリックすると、日付が選択されます。日付ピッカーは、2012年5月9日水曜日の12:00:00 UTC + 2のテキストボックスで2番目の日付を返します。最初のものは、私によって設定されているように違法なものです。 2番目のものは日付ピッカーによって設定されます。

答えて

1

これは私が正しい輸入 `輸入java.text.DateFormatのを使用しています

import com.google.gwt.i18n.client.DateTimeFormat; 

DatePicker datePicker=new DatePicker(); // Have to make final to use in inner method 


timebx.addClickHandler(new ClickHandler() { 

     public void onClick(ClickEvent event) { 
      // TODO Auto-generated method stub 
      String strDate = timebx.getText(); 
      DateTimeFormat format = DateTimeFormat.getFormat("yyyy-MM-dd"); 
      try { 
       Date selDate = (Date)format.parse(strDate); 
       datePicker.setValue(selDate, true); 
      } catch(Exception pe){ 
      // setting current date 
      datePicker.setValue(new Date(), true); 
      } 

      int x=timebx.getAbsoluteLeft(); 
      int y=timebx.getAbsoluteTop(); 
      popupPanel.setPopupPosition(x, y+20); 
      popupPanel.show(); 
     } 
    }); 
+0

を動作するはずです。 import java.text.ParseException; import java.text.SimpleDateFormat; 'これを継承する必要があります。\t [エラー] [myProject] - 行652:java.text.SimpleDateFormat型のソースコードがありません。必要なモジュールを継承することを忘れましたか? – GameBuilder

+0

編集した例を確認してください。 –

+0

DateTimeFormat format = new DateTimeFormat( "yyyy-MM-dd");コンストラクタDateTimeFormat(String)が表示されない – GameBuilder