@NonNull
    public static String formatPocketQueryInfo(final GCList pocketQuery) {
        if (!pocketQuery.isDownloadable()) {
            return StringUtils.EMPTY;
        }

        final List<String> infos = new ArrayList<>(3);
        final int caches = pocketQuery.getCaches();
        if (caches >= 0) {
            infos.add(CgeoApplication.getInstance().getResources().getQuantityString(R.plurals.cache_counts, caches, caches));
        }

        final long lastGenerationTime = pocketQuery.getLastGenerationTime();
        if (lastGenerationTime > 0) {
            infos.add(Formatter.formatShortDateVerbally(lastGenerationTime) + (PocketQueryHistory.isNew(pocketQuery) ? " (" + CgeoApplication.getInstance().getString(R.string.search_pocket_is_new) + ")" : ""));
        }

        final int daysRemaining = pocketQuery.getDaysRemaining();
        if (daysRemaining == 0) {
            infos.add(CgeoApplication.getInstance().getString(R.string.last_day_available));
        } else if (daysRemaining > 0) {
            infos.add(CgeoApplication.getInstance().getResources().getQuantityString(R.plurals.days_remaining, daysRemaining, daysRemaining));
        }

        if (pocketQuery.isBookmarkList()) {
            infos.add(CgeoApplication.getInstance().getResources().getString(R.string.search_bookmark_list));
        }

        return StringUtils.join(infos, SEPARATOR);
    }
Formatting of the hidden date of a cache

@return {@code null} or hidden date of the cache (or event date of the cache) in human readable format
main/src/main/java/cgeo/geocaching/utils/Formatter.java