|
|
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
Прошу помощи. Входным параметром является строка, где должна быть дата, типа "01.09.2005". Надо убедиться, что это действительно дата. Нижеприведенный код ест и такие даты "31.09.2005" и "01.13.2005" - он их просто переводит в "01.10.2005" и "01.01.2006". Как мне вывалиться в ошибку при таком вводе? public static String reformatDate(String dateString) { try { Calendar calendar = new GregorianCalendar(); calendar.setTime(new SimpleDateFormat("dd.MM.yyyy").parse(dateString)); return "ok"; } catch (Exception e) { return "error"; } } --------- читала про ParsePosition, но, к сожалению, ничего не поняла, с Java только знакомлюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:24 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
выделить составляющие и проверить самостоятельно ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:29 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
Deadyвыделить составляющие и проверить самостоятельно ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 получается, что возможна только ручная проверка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:31 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html#setLenient(boolean) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:44 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
Например, так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:44 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
Denis > http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html#setLenient(boolean) > public class Test {public static void main(String[] args)throws > Exception { System.out.println(isValid("01.01.2005", > "dd.MM.yyyy")); System.out.println(isValid("01.13.2005", > "dd.MM.yyyy")); > }static boolean isValid(String value, String datePattern) {if > (value == null || datePattern == null || datePattern.length() <= 0) > {return false; } > SimpleDateFormat formatter =new > SimpleDateFormat(datePattern); formatter.setLenient(false);try { > formatter.parse(value); > }catch (ParseException e) {return false; }return true; } > } так и думал, что этот метод нужен. просто в javadoc смутно как-то он описан. ----------------------------------- The Bat + My Gate Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:52 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
Denis Popov http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html#setLenient(boolean) ... ==> formatter.setLenient(false); ... Спасибо огромное, поняла и сделала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:58 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
fplab... спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 18:59 |
|
||
|
проверка корректности даты
|
|||
|---|---|---|---|
|
#18+
В приведенном Денисом примере, ставлю форматер "dd.mm.yyyy". Мне нужно, чтобы при проверке не пропускались варианты типа "1.3.2005", а пропускались только "01.03.2005". Это можно сделать штатными средствами, или просто добавить свои доп. проверки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2005, 16:18 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=59&tid=2150756]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 379ms |

| 0 / 0 |
