如何检查String是否是有效的Joda DateTime

时间:2014-01-10 12:49:47

标签: android date datetime time jodatime

我的数据库中存储了以下字符串

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;

            }

    }

1 个答案:

答案 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;
    }
  }