Java noob在这里。除了.getTime()方法之外,有没有办法在Calendar类中显示日期?我想要尽可能接近dd / mm / yyyy的东西。我可以创建一个方法来分割由getTime方法返回的字符串,并选择那里的某些项来形成我想要的日期格式,粗暴地强行进入它。我想知道是否有更简单的方法或内置的方法。
我正在解决涉及日期的问题。我只是注意到做了一个while循环,每天#34;"使用.add(Calendar.DAY_OF_MONTH, 1)
增量可以是检查给定条件的每一天的方法。下一个问题是返回达到条件的日期。无论如何,这让我java.util.Calendar
。
答案 0 :(得分:8)
这会有所帮助 - Javadoc
使用SimpleDateFormat
创建静态方法并以任何格式解析日期答案 1 :(得分:2)
我建议您使用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
类课程Calendar
,SimpleDateFormat
和朋友已经过时了,我使用的现代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