有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中以ddmmmyyyy格式打印日期?

我能用计算机计算未来的日期

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, days); // +days      
    return cal.getTime();

但返回的日期格式为:2018年11月23日星期五12:09:46太平洋标准时间

如何用dd-mmm-yyyy格式覆盖它


共 (1) 个答案

  1. # 1 楼答案

    您可以使用SimpleDateFormat,如下所示:

    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, days); // +days      
    SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault());
    return formatter.format(cal.getTime());
    

    演示:

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Locale;
    
    class Main {
        public static void main(String[] args) {
            System.out.println(toFormattedString(10, "dd-MMM-yyyy"));
            System.out.println(toFormattedString(10, "dd-MM-yyyy"));
        }
    
        static String toFormattedString(int days, String pattern) {
            Calendar cal = Calendar.getInstance();
            cal.add(Calendar.DATE, days); // +days
            SimpleDateFormat formatter = new SimpleDateFormat(pattern, Locale.getDefault());
            return formatter.format(cal.getTime());
        }
    }
    

    输出:

    18-Feb-2021
    18-02-2021
    

    java.util的日期时间API及其格式化API SimpleDateFormat已过时且容易出错。建议完全停止使用它们,并切换到现代日期时间API

    使用现代日期时间API:

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;
    import java.util.Locale;
    
    class Main {
        public static void main(String[] args) {
            System.out.println(toFormattedString(10, "dd-MMM-uuuu"));
            System.out.println(toFormattedString(10, "dd-MM-uuuu"));
        }
    
        static String toFormattedString(int days, String pattern) {
            LocalDate today = LocalDate.now();
            LocalDate afterTenDays = today.plusDays(days); // +days
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern, Locale.getDefault());
            return formatter.format(afterTenDays);
        }
    }
    

    输出:

    18-Feb-2021
    18-02-2021
    

    Trail: Date Time了解有关现代日期时间API的更多信息