private static List<Pattern> getEventTimePatterns() {
        if (EVENT_TIME_PATTERNS.isEmpty()) {
            final String hourLocalized = CgeoApplication.getInstance().getString(R.string.cache_time_full_hours);

            // 12:34
            EVENT_TIME_PATTERNS.add(Pattern.compile("\\b(\\d{1,2})\\:(\\d\\d)\\b"));
            if (StringUtils.isNotBlank(hourLocalized)) {
                // 12:34o'clock
                EVENT_TIME_PATTERNS.add(Pattern.compile("\\b(\\d{1,2})\\:(\\d\\d)" + Pattern.quote(hourLocalized), Pattern.CASE_INSENSITIVE));
                // 17 - 20 o'clock
                EVENT_TIME_PATTERNS.add(Pattern.compile("\\b(\\d{1,2})(?:\\.00)?" + "\\s*(?:-|[a-z]+)\\s?" + "(?:\\d{1,2})(?:\\.00)?" + "\\s?" + Pattern.quote(hourLocalized), Pattern.CASE_INSENSITIVE));
                // 12 o'clock, 12.00 o'clock
                EVENT_TIME_PATTERNS.add(Pattern.compile("\\b(\\d{1,2})(?:\\.(00|15|30|45))?\\s?" + Pattern.quote(hourLocalized), Pattern.CASE_INSENSITIVE));
            }
        }
        return EVENT_TIME_PATTERNS;
    }
lazily initialize all the date formats
main/src/main/java/cgeo/geocaching/utils/EventTimeParser.java