1. 方法1: 如果是 java8, 可以使用 LocalDate 獲取
// 獲取當(dāng)前日期前一天的日期
LocalDate localDate = LocalDate.now().minusDays(1);//1代表提前多少天
// 獲取時間字符串如: 2023-03-01
System.out.println(localDate.toString());
// 獲取當(dāng)前年如 2023
System.out.println(localDate.getYear());
// 獲取當(dāng)前月如 3
System.out.println(localDate.getMonthValue());
// 獲取當(dāng)前天如 1
? System.out.println(localDate.getDayOfMonth());
? ? ? ? ?//獲取前一天的日期
String date = localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));//轉(zhuǎn)為String類型
LocalDate轉(zhuǎn)化為指定格式的字符串
方法1文章來源:http://www.zghlxwxcb.cn/news/detail-519001.html
LocalDate localDate = LocalDate.parse("2022-02-02");
String date = localDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(date); //2022-02-02
方法2文章來源地址http://www.zghlxwxcb.cn/news/detail-519001.html
LocalDate localDate = LocalDate.parse("2022-02-02");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String date = dtf.format(localDate);
System.out.println(date); //2022-02-02
2. 方法2: 使用 Calendar 類
//獲取當(dāng)前日期
Date date = new Date();
//將時間格式化成yyyy-MM-dd HH:mm:ss的格式
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//創(chuàng)建Calendar實例
Calendar cal = Calendar.getInstance();
//設(shè)置當(dāng)前時間
cal.setTime(date);
//在當(dāng)前時間基礎(chǔ)上減一年
cal.add(Calendar.YEAR, -1);
System.out.println(format.format(cal.getTime()));
//在當(dāng)前時間基礎(chǔ)上減一月
cal.add(Calendar.MONTH,-1);
System.out.println(format.format(cal.getTime()));
//同理增加一天的方法:
cal.add(Calendar.DATE, 1);
System.out.println(format.format(cal.getTime()));
3. 獲取指定時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//定義日期顯示格式
String now = sdf.format(new Date());//當(dāng)前日期
String nowMonthLateDay = getNextDays(now, "-1");//當(dāng)前日期的前一天
Calendar datees = Calendar.getInstance();
String years = String.valueOf(datees.get(Calendar.YEAR)) + "-11-15";//獲取當(dāng)前年的11-15
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//定義日期顯示格式
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);//當(dāng)前月減去一個月
String before = sdf.format(c.getTime());//上個月的當(dāng)前日期
String now = sdf.format(new Date());//當(dāng)前日期
String nowMonthLateDay = getNextDay(now, "-1");//當(dāng)前日期的前一天
String lateMonthLateDay = getNextDay(before, "-1");//上個月的當(dāng)前日期的前一天
Calendar cal = Calendar.getInstance();
// int m=cal.get(Calendar.MONTH)+1;//獲取當(dāng)前月份
// System.err.println("當(dāng)前月份:"+m);
String nowMonthFirstDay = getFirstDayOfMonth(1);//獲取當(dāng)前月份的第一天
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, 1); //重寫當(dāng)前日期
String lateMonthFirstDay = sdf.format(cal.getTime());//獲取上個月的第一天
4. 獲取當(dāng)前年度,如果超過某個時間,就減去一年或者加上一年
Date date = new Date();//獲取日期
SimpleDateFormat dateFormats= new SimpleDateFormat("yyyy");//日期格式
String year=dateFormats.format(date);//獲取當(dāng)前年度
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//把String轉(zhuǎn)為LocalDate
LocalDate localTime=LocalDate.parse(year+"-06-30",dtf);
Integer years=Integer.valueOf(year);
if (!LocalDate.now().isAfter(localTime)){//判斷時間是否超過
years=Integer.valueOf(year)-1;
}
System.err.println(years);
}
5. 獲取時間的工具類
/**
* 將短時間格式字符串轉(zhuǎn)換為時間 yyyy-MM-dd
*
* @param strDate
* @return
*/
public static Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
/**
* 得到一個時間延后或前移幾天的時間,nowdate為時間,delay為前移或后延的天數(shù)
*/
public static String getNextDay(String nowdate, String delay) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String mdate = "";
Date d = strToDate(nowdate);
long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
d.setTime(myTime * 1000);
mdate = format.format(d);
return mdate;
} catch (Exception e) {
return "";
}
}
/**
* 得到一個時間延后或前移幾天的時間,nowdate為時間,delay為前移或后延的天數(shù)
*/
public static String getNextDays(String nowdate, String delay) {
try {
SimpleDateFormat format = new SimpleDateFormat("-MM-dd");
String mdate = "";
Date d = strToDate(nowdate);
long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
d.setTime(myTime * 1000);
mdate = format.format(d);
return mdate;
} catch (Exception e) {
return "";
}
}
/**
* 獲取當(dāng)前小時
*
* @return
*/
public static String getTimeShort() {
SimpleDateFormat formatter = new SimpleDateFormat(" HH");
Date currentTime = new Date();
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* 獲取當(dāng)前月第一天
*
* @param month
* @return
*/
public static String getFirstDayOfMonth(int month) {
Calendar calendar = Calendar.getInstance();
// 設(shè)置月份
calendar.set(Calendar.MONTH, month - 1);
// 獲取某月最小天數(shù)
int firstDay = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);
// 設(shè)置日歷中月份的最小天數(shù)
calendar.set(Calendar.DAY_OF_MONTH, firstDay);
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String firstDays = sdf.format(calendar.getTime());
return firstDays;
}
//g過去年度
public static String gerLateYear(Integer num){
SimpleDateFormat format = new SimpleDateFormat("yyyy");
Calendar c = Calendar.getInstance();
//過去一年
c.setTime(new Date());
c.add(Calendar.YEAR, num);
Date y = c.getTime();
String year = format.format(y);
return year;
}
//判斷是否超過指定時間
public static boolean afterDate(String date) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//把String轉(zhuǎn)為LocalDate
LocalDate localTime = LocalDate.parse(date, dtf);
//判斷當(dāng)前日期是否大于指定日期
return LocalDate.now().isAfter(localTime);
}
到了這里,關(guān)于Java 獲取日期前一年、月、日,指定日期的前幾天,后幾天的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!