package com.jinliang.test;
import org.junit.Test;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
import java.util.Date;
/**
* @description: 获取上个月月初 /月末 时间
* @author:
* @create: 2020/1/22 17:06
* @update: 2020/1/22 17:06
*/
public class test {
/**
* java1.8以前使用日历类下的上个月月末时间
*/
@Test
public void demo1(){
try {
String str="2019-03-20";
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Date date =sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH,-1);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
//获取最终的时间
Date time = calendar.getTime();
LocalDateTime localDateTime1 = time.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println(localDateTime1);
}catch (Exception e){
e.getMessage();
}
}
/**
*java1.8以后的 使用LocalDateTime类下的上个月月末时间
*/
@Test
public void demo2(){
String date1 = "2019-03-28 00:00:00";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date2 = LocalDateTime.parse(date1, fmt);
LocalDateTime localDateTime = date2.minusMonths(1);
LocalDateTime with = localDateTime.with(TemporalAdjusters.lastDayOfMonth());
System.out.println(date1);
System.out.println(with);
}
/**
* java1.8后 使用LocalDateTime类下的 上个月月初时间
*/
@Test
public void demo3(){
String date1 = "2019-03-28 00:00:00";
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date2 = LocalDateTime.parse(date1, fmt);
LocalDateTime localDateTime = date2.minusMonths(1);
LocalDateTime with = localDateTime.with(TemporalAdjusters.firstDayOfMonth());
System.out.println(date1);
System.out.println(with);
}
}
使用LocalDateTime获取上个月月初或月末时间
最新推荐文章于 2024-05-11 15:10:09 发布