我需要两个给定日期之间的所有月/年名称.我需要这个仅仅放在java上.
示例:
Input Date:
date 1- 20/12/2011
date 2- 22/08/2012
Now ,my expected result should be :-
Dec/2011
Jan/2012
Feb/2012
Mar/2012
Apr/2012
May/2012
Jun/2012
Jul/2012
Aug/2012
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我.提前致谢.
Den*_*ret 10
您可以简单地使用Calendar类,并通过在每次迭代中添加一个月来从一个日期迭代到另一个日期using myCalendar.add(Calendar.MONTH, 1);.
Calendar类负责避免溢出并为您更新其他字段(此处为年份).
Eug*_*ene 10
使用Joda-Time(因为没有指定,我假设您至少可以查看joda时间):
LocalDate date1 = new LocalDate("2011-12-12");
LocalDate date2 = new LocalDate("2012-11-11");
while(date1.isBefore(date2)){
System.out.println(date1.toString("MMM/yyyy"));
date1 = date1.plus(Period.months(1));
}
Run Code Online (Sandbox Code Playgroud)
java.time.YearMonth虽然其他答案在撰写时是不错的答案,但现在已经过时了。自Java 8引入YearMonth该类以来,此任务已大大简化:
String date1 = "20/12/2011";
String date2 = "22/08/2012";
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd/MM/uuuu", Locale.ROOT);
DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("MMM/uuuu", Locale.ROOT);
YearMonth endMonth = YearMonth.parse(date2, dateFormatter);
for (YearMonth month = YearMonth.parse(date1, dateFormatter);
! month.isAfter(endMonth);
month = month.plusMonths(1)) {
System.out.println(month.format(monthFormatter));
}
Run Code Online (Sandbox Code Playgroud)
打印:
Dec/2011
Jan/2012
Feb/2012
Mar/2012
Apr/2012
May/2012
Jun/2012
Jul/2012
Aug/2012
Run Code Online (Sandbox Code Playgroud)
请为第二个电话提供适当的语言环境,DateTimeFormatter.ofPattern()以获取您所用语言的月份名称。而且第一个电话也要安全。
| 归档时间: |
|
| 查看次数: |
11975 次 |
| 最近记录: |