2013-08-01 51 views
1

我试图从日期选择器获得日期,我的代码如下日期选择器对话框中选取错误年

dpResult = (DatePicker) findViewById(R.id.dpResult); 
btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       //Calendar current = Calendar.getInstance(); 
       gettingDate(); 

      } 

      private void gettingDate() { 
       // TODO Auto-generated method stub 
       int day = dpResult.getDayOfMonth(); 
       int month= dpResult.getMonth(); 
       int year = dpResult.getYear(); 

       SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
       formatedDate = sdf.format(new Date(year, month, day)); 
      // You can parse the String back to Date object by calling 

       try { 
        date = sdf.parse(formatedDate); 
       } catch (ParseException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       Toast.makeText(getApplicationContext(), ""+formatedDate, 1000).show(); 
      } 
     }); 

我敬酒显示日期的月正常,但在今年前两个数字为39即像3913,3914等请帮我

+1

我有同样的问题,而不是使用日历。我曾使用'dPicker.getYear() - 1900'。忘了我为什么现在就这样使用。得到ref:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#Date%28int,%20int,%20int%29 –

+0

谢谢你...你的逻辑是好的 – user1237894

回答

2

你必须使用这种格式来获得完美和正确的一年。

dpResult.getYear()-1900; 
+0

谢谢..工作,但它是框架问题? – user1237894

+0

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#Date%28int,%20int,%20int%29。请参阅@ user1237894 –

+0

感谢您的支持 – user1237894

2

使用dpResult.getYear()-1900

int year = dpResult.getYear(); 
+1

谢谢...您的逻辑很好 – user1237894

+0

@ user1237894欢迎:) –

+0

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 – midhunhk

0

日期已过时,应使用以下语法

Calendar cal = Calendar.getInstance() 
cal.set(dpResult.getYear(), dpResult.getMonth()-1,getDayOfMonth()) 
相关问题