Example usage for java.time.format DateTimeFormatterBuilder getLocalizedDateTimePattern

List of usage examples for java.time.format DateTimeFormatterBuilder getLocalizedDateTimePattern

Introduction

In this page you can find the example usage for java.time.format DateTimeFormatterBuilder getLocalizedDateTimePattern.

Prototype

public static String getLocalizedDateTimePattern(FormatStyle dateStyle, FormatStyle timeStyle,
        Chronology chrono, Locale locale) 

Source Link

Document

Gets the formatting pattern for date and time styles for a locale and chronology.

Usage

From source file:org.openlmis.fulfillment.web.util.StatusChangeDto.java

/**
 * Print createdDate for display purposes.
 * @return created date//w w  w  .j  a va 2 s. c o m
 */
@JsonIgnore
public String printDate() {
    Locale locale = LocaleContextHolder.getLocale();
    String datePattern = DateTimeFormatterBuilder.getLocalizedDateTimePattern(FormatStyle.MEDIUM,
            FormatStyle.MEDIUM, Chronology.ofLocale(locale), locale);
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(datePattern);

    return dateTimeFormatter.format(createdDate);
}

From source file:org.talend.dataquality.statistics.datetime.utils.PatternListGenerator.java

private static void getFormatByStyle(FormatStyle dateStyle, FormatStyle timeStyle, boolean isDateRequired,
        boolean isTimeRequired, Locale locale, boolean keepLongMonthAndSpecificChars) {
    String pattern = DateTimeFormatterBuilder.getLocalizedDateTimePattern(//
            isDateRequired ? dateStyle : null, isTimeRequired ? timeStyle : null, IsoChronology.INSTANCE,
            locale);//

    // ignore patterns with long month for additional languages
    if (!keepLongMonthAndSpecificChars && (pattern.contains("MMMM") || pattern.contains("MMM")
            || pattern.contains(" a") || pattern.contains("'"))) {
        return;/*  www .  j a v a  2s .  c om*/
    }

    if (!pattern.contains("yy") && pattern.contains("y")) {// only one "y" to represent year part
        return;
    }

    if (!knownPatternList.contains(pattern)) {

        LocaledPattern lp = new LocaledPattern(pattern, locale, dateStyle.name(), isTimeRequired);
        knownLocaledPatternList.add(lp);
        knownPatternList.add(pattern); // update list of pattern strings without locale
        if (PRINT_DETAILED_RESULTS) {
            System.out.println(lp);
        }
    } else {
        if (pattern.contains("MMMM") || pattern.contains("MMM")) {
            if (PRINT_DETAILED_RESULTS) {
                System.out.print("!!!duplicated pattern with different locale!!! ");
            }
            LocaledPattern lp = new LocaledPattern(pattern, locale, dateStyle.name(), isTimeRequired);
            knownLocaledPatternList.add(lp);
            if (PRINT_DETAILED_RESULTS) {
                System.out.println(lp);
            }

        }

    }
}

From source file:org.talend.dataquality.statistics.datetime.utils.PatternListGenerator.java

private static void generateDateFormats() throws IOException {
    int currentLocaledPatternSize = 0;
    knownLocaledPatternList.clear();// ww  w  .  j  a va  2s  .c o  m
    knownPatternList.clear();
    // 1. Base Localized DateTimePatterns (java8 DateTimeFormatterBuilder)
    processBaseDateTimePatternsByLocales();
    int basePatternCount = knownLocaledPatternList.size() - currentLocaledPatternSize;
    if (PRINT_DETAILED_RESULTS) {
        System.out.println("#basePatterns = " + basePatternCount + "\n");
    }
    currentLocaledPatternSize = knownLocaledPatternList.size();

    // 2. Other common DateTime patterns
    for (LocaledPattern lp : OTHER_COMMON_PATTERNS_NEED_COMBINATION) {
        addLocaledPattern(lp);

        for (Locale locale : primaryLocaleArray) {

            String patternShort = DateTimeFormatterBuilder.getLocalizedDateTimePattern(//
                    null, FormatStyle.SHORT, IsoChronology.INSTANCE, locale);//
            LocaledPattern combinedShortLP = new LocaledPattern(lp.pattern + " " + patternShort, locale,
                    FormatStyle.SHORT.name(), true);
            addLocaledPattern(combinedShortLP);

            String patternMedium = DateTimeFormatterBuilder.getLocalizedDateTimePattern(//
                    null, FormatStyle.MEDIUM, IsoChronology.INSTANCE, locale);//
            LocaledPattern combinedMediumLP = new LocaledPattern(lp.pattern + " " + patternMedium, locale,
                    FormatStyle.MEDIUM.name(), true);
            addLocaledPattern(combinedMediumLP);

        }

    }

    for (LocaledPattern lp : OTHER_COMMON_PATTERNS) {
        addLocaledPattern(lp);
    }

    // 3. ISO and RFC DateTimePatterns
    processISOAndRFCDateTimePatternList();
    // knownPatternList.addAll(isoPatternList);
    int isoPatternCount = knownLocaledPatternList.size() - currentLocaledPatternSize;
    if (PRINT_DETAILED_RESULTS) {
        System.out.println("#DateTimePattern(ISO&RFC) = " + isoPatternCount + "\n");
    }
    currentLocaledPatternSize = knownLocaledPatternList.size();

    // 4. Additional Localized DateTimePatterns (java8 DateTimeFormatterBuilder)
    processAdditionalDateTimePatternsByLocales();
    // knownPatternList.addAll(additionalPatternList);
    int additionalPatternCount = knownLocaledPatternList.size() - currentLocaledPatternSize;
    if (PRINT_DETAILED_RESULTS) {
        System.out.println("#additionalPatternList = " + additionalPatternCount + "\n");
    }
    currentLocaledPatternSize = knownLocaledPatternList.size();

    if (PRINT_DETAILED_RESULTS) {
        System.out.println("#Total = " + knownLocaledPatternList.size() + //
                " (#baseDatePatterns = " + basePatternCount + //
                ", #isoPatterns = " + isoPatternCount + //
                ", #additionalPatterns = " + additionalPatternCount + ")\n");//
    }

    // table header
    dateSampleFileTextBuilder.append("Sample\tPattern\tLocale\tFormatStyle\tIsWithTime\n");

    RegexGenerator regexGenerator = new RegexGenerator();
    for (LocaledPattern lp : knownLocaledPatternList) {

        datePatternFileTextBuilder.append(lp).append("\n");

        String regex = regexGenerator.convertPatternToRegex(lp.pattern);
        dateRegexFileTextBuilder.append(lp.getPattern()).append("\t^").append(regex).append("$\n");
        dateSampleFileTextBuilder
                .append(ZONED_DATE_TIME.format(DateTimeFormatter.ofPattern(lp.getPattern(), lp.getLocale())))
                .append("\t").append(lp.getPattern())//
                .append("\t").append(lp.getLocale())//
                .append("\t").append(lp.getFormatStyle())//
                .append("\t").append(lp.isWithTime()).append("\n");
    }

    // Date Formats
    String path = SystemDateTimePatternManager.class.getResource("DateFormats.txt").getFile().replace(
            "target" + File.separator + "classes",
            "src" + File.separator + "main" + File.separator + "resources");
    IOUtils.write(datePatternFileTextBuilder.toString(), new FileOutputStream(new File(path)));

    // Date Regexes
    path = SystemDateTimePatternManager.class.getResource("DateRegexes.txt").getFile().replace(
            "target" + File.separator + "classes",
            "src" + File.separator + "main" + File.separator + "resources");
    IOUtils.write(dateRegexFileTextBuilder.toString(), new FileOutputStream(new File(path)));

    // Date Samples
    path = SystemDateTimePatternManager.class.getResource("DateSampleTable.txt").getFile().replace(
            "target" + File.separator + "classes",
            "src" + File.separator + "test" + File.separator + "resources");
    IOUtils.write(dateSampleFileTextBuilder.toString(), new FileOutputStream(new File(path)));

    // generate grouped Date Regexes
    FormatGroupGenerator.generateDateRegexGroups();
}