2014-01-10 3 views
1

Я follwing Строка хранится в моей БДКак проверить, если строка является допустимым Joda DateTime

cursor.getString(cursor.getColumnIndex(C_TAG_SENTSERVER_TIME); 

.

Как я могу проверить, является ли строка правильной датой даты Joda. Строка, например, 11236263722, в основном длинная.

Я хотел бы проверить, что строка не является, например, «, 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; 

      } 

    } 

ответ

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; 
    } 
    } 
+0

Спасибо. да, это либо sec/millisecs с 1970 года. – turtleboy

Смежные вопросы