我的数据库中存储了以下字符串
cursor.getString(cursor.getColumnIndex(C_TAG_SENTSERVER_TIME);
我如何测试以查看String是否是有效的Joda DateTime。字符串例如是11236263722,基本上是长的。
我想检查String不是例如“,kjj”,因为这不会有效。
我尝试了以下内容。
public boolean isValidDate(String dateString) {
Log.e(TAG, "dateString (sentToServerTime under test) =========>>>>>>>> " + dateString);
if(DateTime.parse(dateString) != null){
Log.e(TAG, "sent to server time is valid");
return true;
}else{
Log.e(TAG, "sent to server time is not valid");
return false;
}
}
答案 0 :(得分:2)
我不知道“11236263722”是什么样的格式。它是自1970年以来的秒数或毫秒数???它看起来不像这样。无论如何,如果你只是想确保你的“长”只是数字,那么遵循简单的方法对你来说就足够了。
String test = "11236263722";
public boolean isValid(String test) {
for (int i = 0, n = test.length(); i < n; i++) {
char c = test.charAt(i);
if (c < '0' || c > '9') {
return false;
}
}
return true;
}
但是如果你的日期字符串是任何专门的日期/时间模式,那么你必须像这样指定the exact and expected pattern:
public boolean isValid(String test) {
try {
DateTimeFormatter dtf = DateTimeFormat.forPattern("{your pattern}");
dtf.parseDateTime(text);
return true;
} catch (IllegalArgumentException iae) {
return false;
}
}