2013-07-14 1 views
1

Я должен проверить 2 даты String s в обычном формате "dd.MM.yyyy, HH:mm:ss" друг на друга. Как я могу получить старшего?Как сравнить дату - Строка в пользовательском формате «dd.MM.yyyy, HH: mm: ss» с другим?

Например:

String date1 = "05.02.2013, 13:38:14"; 
String date2 = "05.02.2013, 09:38:14"; 

Есть ли способ, чтобы получить date2 сравнение?

+0

Что вы пробовали? Используйте simpleFormatDate и проанализируйте его на сегодняшний день, а затем сравните их с compareTo – nachokk

+0

. Проверьте http://stackoverflow.com/questions/9872419/converting-string-to-date-using-simpledateformat – user1759572

ответ

1

У вас уже есть формат даты, используйте его с SimpleDateFormat, а затем compare созданных Date объектов.

See demo here. Пример кода:

public static void main(String[] args) Exception { 
    String date1 = "05.02.2013, 13:38:14"; 
    String date2 = "05.02.2013, 09:38:14"; 
    System.out.println(getOlder(date1, date2)); // 05.02.2013, 13:38:14 
    System.out.println(getOlder(date2, date1)); // 05.02.2013, 13:38:14 
} 

public static String getOlder(String one, String two) throws ParseException { 
    Date dateOne = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss").parse(one); 
    Date dateTwo = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss").parse(two); 
    if (dateOne.compareTo(dateTwo) > -1) { 
     return one; // or return dateOne; 
    } 
    return two; // or return dateTwo; 
} 

Конечно, метод выше возвращает старую строку даты введенную. Вы можете изменить его (см. Комментарии), чтобы вместо этого вернуть объект Date.

+0

wow! спасибо, это именно то, что мне нужно! :) – maysi

5

Я просто дам вам краткое объяснение того, как вы должны действовать. Вы должны сначала разобрать эти строки даты в Date объект. Используйте для этого DateFormat#parse(String). После того как вы получите объект Date из этих строк, вы можете сравнить эти объекты с помощью метода Date#compareTo(Date).

0

Калотации с датой и временем всегда сложны, и я настоятельно рекомендую использовать соответствующие классы для этого, вы можете проверить Joda Time.

Их классы предоставляют такие методы, как daysBetween, которые дают вам нужный результат.

Конечно, вам нужно проанализировать свою строку, чтобы дать вам объект, представляющий эту дату и время в первую очередь.

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