java - 在Calendar类中显示日期方法

时间:2017-09-20 09:56:35

标签: java string date calendar date-formatting

Java noob在这里。除了.getTime()方法之外,有没有办法在Calendar类中显示日期?我想要尽可能接近dd / mm / yyyy的东西。我可以创建一个方法来分割由getTime方法返回的字符串,并选择那里的某些项来形成我想要的日期格式,粗暴地强行进入它。我想知道是否有更简单的方法或内置的方法。

我正在解决涉及日期的问题。我只是注意到做了一个while循环,每天#34;"使用.add(Calendar.DAY_OF_MONTH, 1)增量可以是检查给定条件的每一天的方法。下一个问题是返回达到条件的日期。无论如何,这让我java.util.Calendar

3 个答案:

答案 0 :(得分:8)

这会有所帮助 - Javadoc

使用SimpleDateFormat

创建静态方法并以任何格式解析日期

答案 1 :(得分:2)

java.time

我建议您使用the modern Java date and time API known as java.time or JSR-310。例如:

    final LocalDate beginDate = LocalDate.of(2017, Month.JANUARY, 1);
    final LocalDate endDate = LocalDate.of(2020, Month.DECEMBER, 31);
    final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd/MM/uuuu");

    LocalDate currentDate = beginDate;
    while (currentDate.isBefore(endDate) && ! fulfilsCondition(currentDate)) {
        currentDate = currentDate.plusDays(1);
    }
    if (fulfilsCondition(currentDate)) {
        System.out.println("This date hit the condition: " + currentDate.format(dateFormatter));
    } else {
        System.out.println("No date in the range hit the condition");
    }

我相信你可以在代码的两个地方填写你的病情测试。根据您的操作方式,代码将打印例如:

This date hit the condition: 25/09/2018

如果您尚未使用Java 8或更高版本,则需要使用ThreeTen Backport才能使用现代API。

避免过时的Calendar

课程CalendarSimpleDateFormat和朋友已经过时了,我使用的现代API更好,更自然,更直接。关于Java 1以来,旧的类已经存在,所以有很多网站告诉你应该使用它们。这不再是真的。

答案 2 :(得分:1)

格式化日期的最简单方法可以使用SimpleDateFormat类完成:

Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
System.out.println( sdf.format(calendar.getTime()) );

您可以在此处找到要修改格式的模式:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html