String date="12/20/20102";
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date today;
try {
today = df.parse(date.trim());
Log.e("Error", "Correct");
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
Log.e("Error", "InCorrect");
}
我无法纠正这个问题。我总是得到这个转换,如果我给出一个不正确的日期字符串也没有捕获异常。
请帮帮我。
答案 0 :(得分:2)
String date="12/2/2012"
应为String date="12/02/2012"
。应该有前导零。
离。
int month = 3;
int dayOfMonth = 4;
int year = 2012;
String date = String.format("%02d",dayOfMonth)+"/"
+ String.format("%02d",month)+"/"
+ year;
答案 1 :(得分:1)
字符串日期=“12/20/20102”;
这是正确的还是正确的
String date="12/20/2012";
答案 2 :(得分:1)
试试这种方式
String s_date="12/1/2006";
Date date = null ;
DateFormat formatter= new SimpleDateFormat("dd/MM/yyyy");
date = (Date)formatter.parse(s_date);
答案 3 :(得分:1)
您的字符串输入是:
String date="12/20/20102";
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
两个错误:
字符串日期=“12/20 / 20122 ”; //应该是“12/20 / 2012 ”
您的字符串输入采用 MM / dd / yyyy 格式,并且您尝试以 dd / MM / yyyy 格式进行解析。更改字符串输入格式(20/12/2012)或将格式化程序更改为(MM / dd / yyyy)。
修改强>
以下是以 dd / MM / yyyy 格式验证用户输入日期的示例代码。
String str = txt.getText().toString();
try{
String tmp[] = str.split("/");
int day = Integer.parseInt(tmp[0]);
int month = Integer.parseInt(tmp[1]);
int year = Integer.parseInt(tmp[2]);
if(!(day > 31) && !(month > 12) && (tmp[2].length() == 4) )
{
// Verified date....
}
else
{
Toast.makeText(getBaseContext(), "Please enter date in correct format. (dd/MM/yyy)", Toast.LENGTH_SHORT).show();
}
}
catch (Exception e) {
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
注意:闰年和2月月逻辑未实现。
完整验证,此处提供所有条件。 http://www.mkyong.com/regular-expressions/how-to-validate-date-with-regular-expression/
如果对你有所帮助,别忘了接受这个。
...谢谢
答案 4 :(得分:0)
如果我没有错,你要检查用户输入的日期是写还是错。然后用下面的方法检查。
private boolean convertStringToDate(String date){
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date today = null;
try {
today = df.parse(date.trim());
Log.e("Error", "Correct");
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
Log.e("Error", "InCorrect");
return false;
}
return true;//if every thing is write
}
并从您的代码中可以使用它,如下所示
boolean isValidDate = convertStringToDate("12/20/20102");
答案 5 :(得分:0)
您想验证用户输入日期。
你的守则是。
String date="12/20/20102";
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date today;
try {
today = df.parse(date.trim());
Log.e("Error", "Correct");
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
Log.e("Error", "InCorrect");
}
我知道这不会引起任何例外。但如果您输入 20102 ,则不会将年份设为 2012 。 所以经过上面的代码检查条件..
if(!(df.format(today).equals(date))){
Log.e("Error", "InCorrect Date");
}