java日期加減Calendar日歷類型常見問題
更新時間:2025年08月02日 11:04:30 作者:船_.
Java中可使用Calendar類進行日期加減及字段操作,SimpleDateFormat用于日期格式化,需注意異常處理以確保程序穩(wěn)定性
Java中,我們可以使用Calendar類來進行日期的加減操作。
常見的方法如下:
獲取當前日期
Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime();
日期加減
// 加一天 calendar.add(Calendar.DAY_OF_MONTH, 1); // 減一天 calendar.add(Calendar.DAY_OF_MONTH, -1); // 加一小時 calendar.add(Calendar.HOUR_OF_DAY, 1); // 減一小時 calendar.add(Calendar.HOUR_OF_DAY, -1); // 加一分鐘 calendar.add(Calendar.MINUTE, 1); // 減一分鐘 calendar.add(Calendar.MINUTE, -1);
獲取指定日期的某個字段值
// 獲取年份 int year = calendar.get(Calendar.YEAR); // 獲取月份(注意:月份從0開始,所以需要加1) int month = calendar.get(Calendar.MONTH) + 1; // 獲取日期 int day = calendar.get(Calendar.DAY_OF_MONTH); // 獲取小時 int hour = calendar.get(Calendar.HOUR_OF_DAY); // 獲取分鐘 int minute = calendar.get(Calendar.MINUTE); // 獲取秒 int second = calendar.get(Calendar.SECOND);
獲取指定日期的某個字段的最大值
// 獲取當前月份的最大天數(shù) int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
1、SimpleDateFormat類
Date date = new Date();
SimpleDateFormat spf = new SimpleDateFormat("yyyy年-MM月-dd日:HH時-mm分-ss秒");
System.out.println(spf.format(date));
//輸出為:
2021年-7月-14日:17時-15分-53秒
2、Calendar類
package com.hp.date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarDemo{
public static void main(String[] args) throws Exception {
//獲取獲取系統(tǒng)的當前日歷對象
Calendar instance = Calendar.getInstance();
//1、獲取今天是周幾
int weekDay = instance.get(Calendar.DAY_OF_WEEK);
System.out.println("今天是周:" + (weekDay - 1));
//2、獲取系統(tǒng)當前年
int year = instance.get(Calendar.YEAR);
System.out.println("今年是:" + year + "年");
//3、獲取系統(tǒng)當前月
int month = instance.get(Calendar.MONTH);
System.out.println("本月是:" + (month + 1) + "月");
//4、獲取系統(tǒng)當前日
int day = instance.get(Calendar.DATE);
System.out.println("今天是" + day + "號");
//5、獲取上午跟下午
int am_pm = instance.get(Calendar.AM_PM);
if (am_pm == 0)
System.out.println("是上午");
else
System.out.println("是下午");
//6、獲取當前的系統(tǒng)時間[date-->String]的過程
Date time = instance.getTime();//獲取的是當前系統(tǒng)的時間
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
String showTime = format.format(time);
System.out.println("當前系統(tǒng)時間為:" + showTime);
//7、自定義日歷的時間
String strTime = "2021-07-07";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(strTime);
instance.setTime(date);//將時間對象data設置為新的日歷
System.out.println("修改后的系統(tǒng)時間為:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(instance.getTime()));
}
System.out.println("------------Calendar和Date轉換------------");
Date now = calendar.getTime();
calendar.setTime(now);
System.out.println("------------Calendar日期計算以及判斷------------");
calendar = new GregorianCalendar();
Calendar calendar2 = new GregorianCalendar();
calendar2.set(Calendar.YEAR, 2800);
//是否在某個時間(calendar2)之后
System.out.println(calendar.after(calendar2));
//是否在某個時間(calendar2)之前
System.out.println(calendar.before(calendar2));
//增加多少年年,月日以及時分秒同理
calendar.add(Calendar.YEAR, -10);
}
}
3、異常調試
同時在調用parse這個方法時,會出現(xiàn)異常,
try {
} catch (ParseException e) {
e.printStackTrace();
}
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
啟動SpringBoot報錯Input length = 1問題及解決
這篇文章主要介紹了啟動SpringBoot報錯Input length = 1問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
SpringBoot條件注解之@ConditionalOnClass等注解的使用場景分析
文章詳細介紹了SpringBoot中條件注解的體系,包括基本概念、@ConditionalOnClass等常用注解的工作原理和使用場景,文章還探討了條件注解的組合使用、實戰(zhàn)應用以及最佳實踐,幫助開發(fā)者更好地理解和應用條件注解,實現(xiàn)更靈活和智能的應用配置,感興趣的朋友一起看看吧2025-03-03
為什么wait和notify必須放在synchronized中使用
這篇文章主要介紹了為什么wait和notify必須放在synchronized中使用,文章圍繞主題的相關問題展開詳細介紹,具有一定的參考價值,需要的小伙伴可以參考以參考一下2022-05-05
Java畢業(yè)設計實戰(zhàn)之二手書商城系統(tǒng)的實現(xiàn)
這是一個使用了java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP開發(fā)的二手書商城系統(tǒng),是一個畢業(yè)設計的實戰(zhàn)練習,具有在線書城該有的所有功能,感興趣的朋友快來看看吧2022-01-01

