yyyy-MM格式的日期如何获得上个月的某一天和这个月的某一天,使用java实现
时间: 2024-03-08 10:48:00 浏览: 134
Java实现获取某年某月第一天/最后一天的方法
5星 · 资源好评率100%
要获得上个月的某一天和这个月的某一天,可以使用 Java 中的 Calendar 类和 SimpleDateFormat 类来实现。具体步骤如下:
```java
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class Test {
public static void main(String[] args) {
// 获取当前时间
Calendar now = Calendar.getInstance();
// 获取上个月的年份和月份
int lastMonth = (now.get(Calendar.MONTH) + 11) % 12;
int lastYear = now.get(Calendar.YEAR) - (lastMonth == 11 ? 1 : 0);
// 获取上个月的日期和这个月的日期
Calendar lastMonthDay = Calendar.getInstance();
lastMonthDay.set(Calendar.YEAR, lastYear);
lastMonthDay.set(Calendar.MONTH, lastMonth);
lastMonthDay.set(Calendar.DAY_OF_MONTH, 1);
Calendar thisMonthDay = Calendar.getInstance();
thisMonthDay.set(Calendar.DAY_OF_MONTH, 1);
// 获取上个月的某一天和这个月的某一天
Calendar dayInLastMonth = (Calendar) lastMonthDay.clone();
dayInLastMonth.set(Calendar.DAY_OF_MONTH, 10);
Calendar dayInThisMonth = (Calendar) thisMonthDay.clone();
dayInThisMonth.set(Calendar.DAY_OF_MONTH, 20);
// 输出结果
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("上个月的某一天:" + sdf.format(dayInLastMonth.getTime()));
System.out.println("这个月的某一天:" + sdf.format(dayInThisMonth.getTime()));
}
}
```
其中,`lastMonth` 表示上个月的月份,使用了一个取模的技巧来计算;`lastYear` 表示上个月的年份,根据上个月的月份和当前月份的大小关系判断;`lastMonthDay` 表示上个月的第一天,即 `1` 号;`thisMonthDay` 表示这个月的第一天,同样是 `1` 号;`dayInLastMonth` 和 `dayInThisMonth` 分别表示上个月的某一天和这个月的某一天,这里分别取了 `10` 号和 `20` 号作为例子,可以根据需求进行修改。最后使用 `SimpleDateFormat` 类将日期格式化为字符串输出。
阅读全文