Discuss / Java / 工厂方法:将产品封装打包,使用方法不变,却可偷工减料

工厂方法:将产品封装打包,使用方法不变,却可偷工减料

Topic source

Junes_99994

#1 Created at ... [Delete] [Delete and Lock User]

import java.time.LocalDate;

import java.time.format.DateTimeFormatter;

public class Program {

    public static void main(String[] args) {

        int[] intTimes = { 22022_1202, 2022_1202, 122_0202, 22_0202, 1224, 214, 12, 3, 0 };

        for (int t : intTimes) {

            LocalDate date = DateUtils.fromInt(t);

            System.out.println(date);

        }

    }

}

public class DateUtils {

    public static LocalDate fromInt(int dateInt) {

        final String iniDate = "20000101";

        String dateString = dateInt > 10000_00_00 ? String.valueOf(dateInt % 10000_00_00)

                : dateInt > 100_00 ? String.valueOf(dateInt)

                        : dateInt > 1_00 ? String.format("%.4s%04d", iniDate, dateInt)

                                : dateInt > 0 ? String.format("%.6s%02d", iniDate, dateInt) : iniDate;

        int dateLen = dateString.length();

        String datePattern = "yyyyMMdd".substring(8 - dateLen, 8);

        LocalDate date = LocalDate.parse(dateString,

                DateTimeFormatter.ofPattern(datePattern));

        return date;

    }

}


  • 1

Reply