JAVA处理日期时间常用方法:

1.Java.util.Calendar
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

例:
Java代码

java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历。
Calendar cal_1 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历。
Calendar cal_2 = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历。

System.out.println("Today is:" + format.format(cal.getTime()));

// 取当前日期的前一天.
cal_1.add(Calendar.DAY_OF_MONTH, -1);
System.out.println("yesterday is:" + format.format(cal_1.getTime()));

// 取当前日期的后一天.
cal_2.add(Calendar.DAY_OF_MONTH, +1);
System.out.println("tomorrow is:" + format.format(cal_2.getTime()));

Java代码
Date d=new Date();   
   SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");   
   System.out.println("今天的日期:"+df.format(d));   
   System.out.println("两天前的日期:" + df.format(new Date(d.getTime() - (long)2 * 24 * 60 * 60 * 1000)));  
   System.out.println("三天后的日期:" + df.format(new Date(d.getTime() + (long)3 * 24 * 60 * 60 * 1000)));

Java代码
Calendar calendar = new GregorianCalendar(2007, 11, 25,0,0,0);    
Date date = calendar.getTime();    
System.out.println("2007 Christmas is:"+format.format(date));

java月份是从0-11,月份设置时要减1.

GregorianCalendar构造方法参数依次为:年,月-1,日,时,分,秒.

取日期的部分:
Java代码
int year =calendar.get(Calendar.YEAR);    
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 seconds =calendar.get(Calendar.SECOND);

取月份要加1.

判断当前月份的最大天数:
Java代码
Calendar cal = Calendar.getInstance();    
int day=cal.getActualMaximum(Calendar.DAY_OF_MONTH);    
System.out.println(day);

2.java.util.Date
Java代码
java.util.Date today=new java.util.Date();    
System.out.println("Today is "+formats.format(today));

取当月的第一天:
Java代码
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-01");    
java.util.Date firstDay=new java.util.Date();    
System.out.println("the month first day is "+formats.format(firstDay));

取当月的最后一天:
Java代码
    
Calendar cal = Calendar.getInstance();    
int maxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH);    
java.text.Format formatter3=new java.text.SimpleDateFormat("yyyy-MM-"+maxDay);    
System.out.println(formatter3.format(cal.getTime()));

求两个日期之间相隔的天数:
Java代码
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");    
java.util.Date beginDate= format.parse("2007-12-24");    
java.util.Date endDate= format.parse("2007-12-25");    
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);    
System.out.println("相隔的天数="+day);

一年前的日期:
Java代码
java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd");    
java.util.Date todayDate=new java.util.Date();    
long beforeTime=(todayDate.getTime()/1000)-60*60*24*365;    
todayDate.setTime(beforeTime*1000);    
String beforeDate=formatter.format(todayDate);    
System.out.println(beforeDate);

一年后的日期:
Java代码
java.text.Format formatter=new java.text.SimpleDateFormat("yyyy-MM-dd");    
java.util.Date todayDate=new java.util.Date();    
long afterTime=(todayDate.getTime()/1000)+60*60*24*365;    
todayDate.setTime(afterTime*1000);    
String afterDate=formatter.format(todayDate);    
System.out.println(afterDate);

求10小时后的时间
Java代码
java.util.Calendar Cal=java.util.Calendar.getInstance();    
Cal.setTime(dateOper);    
Cal.add(java.util.Calendar.HOUR_OF_DAY,10);    
System.out.println("date:"+forma.format(Cal.getTime()));

求10小时前的时间
Java代码
java.util.Calendar Cal=java.util.Calendar.getInstance();    
Cal.setTime(dateOper);    
Cal.add(java.util.Calendar.HOUR_OF_DAY,-10);    
System.out.println("date:"+forma.format(Cal.getTime()));

3.java.sql.Date
继承自java.util.Date,是操作数据库用的日期类型
Java代码
java.sql.Date sqlDate = new java.sql.Date(java.sql.Date.valueOf("2007-12-25").getTime());

日期比较:简单的比较可以以字符串的形式直接比较,也可使用
java.sql.Date.valueOf("2007-03-08").compareTo(java.sql.Date.valueOf("2007-03-18")) 方式来比较日期的大小.也可使用java.util.Date.after(java.util.Date)来比较.

相差时间:
long difference=c2.getTimeInMillis()-c1.getTimeInMillis();
相差天数:long day=difference/(3600*24*1000)
相差小时:long hour=difference/(3600*1000)
相差分钟:long minute=difference/(60*1000)
相差秒: long second=difference/1000

补充:
Java代码
DateFormat df=new SimpleDateFormat("yyyy-MM-dd EE hh:mm:ss");    
System.out.println(df.format(new Date()));    
Date date = new Date();    
DateFormat shortDate=DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);    
DateFormat mediumDate =DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);    
DateFormat longDate =DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);    
DateFormat fullDate =DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);    
  
system.out.println(shortDate.format(date));    
System.out.println(mediumDate.format(date));    
System.out.println(longDate.format(date));    
System.out.println(fullDate.format(date));    
  
08-4-15 下午3:24    
2008-4-15 15:24:31    
2008年4月15日 下午03时24分31秒    
2008年4月15日 星期二 下午03时24分31秒CST    
 
Calendar c = Calendar.getInstance(); 
c.add(Calendar.MONTH, 1); // 目前時間加1個月    
System.out.println(df.format(c.getTime()));    
c.add(Calendar.HOUR, 3); // 目前時間加3小時    
System.out.println(df.format(c.getTime()));    
c.add(Calendar.YEAR, -2); // 目前時間減2年    
System.out.println(df.format(c.getTime())); 
c.add(Calendar.DAY_OF_WEEK, 7); // 目前的時間加7天    
System.out.println(df.format(c.getTime()));

java对日期Date类进行加减运算、年份加减,月份加减相关推荐

  1. java时间差的百分之二十,Java对日期Date类进行加减运算、年份加减月份加减、时间差等等...

    实现代码一: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public c ...

  2. 转 Java对日期Date类进行加减运算一二三

    请移步,https://blog.csdn.net/hacker_lees/article/details/74351838 ,感谢博主分享 转载于:https://www.cnblogs.com/b ...

  3. JAVA的String、StringBuilder、StringBuffer、包装类、日期Date类、枚举类(Enumeration)

    主要内容: String类 字符串构造器的用法 String中的常用方法 String类源代码 String字符串各种拼接方式的效率比较 包装类 日期Date Date方法 getTime 日期格式化 ...

  4. 学习String类和日期Date类,看这一篇就够了

    写在前面,Java基础系列文章都是作者基于b站尚硅谷的Java基础视频所做的笔记,没有时间的同学可以认真看看,如果有时间的同学,还是建议看看视频,毕竟笔记说到底还是自己的东西,每个人的习惯也是不一样的 ...

  5. Java 实现日期 Date 的赋值

    关键的语句也就三句话: (1) SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");   (2) Da ...

  6. java当前月份减一个月_Java对日期Date类进行加减运算、年份加减月份加减、时间差等等...

    实现代码一: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public c ...

  7. java sql date 加减_Java对日期Date类进行加减运算,年份加减,月份加减

    Date d=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); System.out.prin ...

  8. Java 中日期的几种常见操作 —— 取值、转换、加减、比较

    Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提 ...

  9. Java日期Date类,格式化,年月日时分秒星期

    Date类 1.由java.util包提供 2.封装了当前日期和时间 3.共有两个构造函数, 无参构造:Date() 使用当前日期及时间初始化对象 有参构造:Date(long number)参数为毫 ...

最新文章

  1. Java运行作业控制语言_Java安全——语言本身的设计
  2. wasm-simd入门(卷积指令)
  3. ffmpeg 常用基本命令和ffmpeg处理RTMP流媒体的常用命令
  4. 新年迈出Java后台服务器与数据库交互第一步2022最新通用Java8jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
  5. LVM逻辑卷管理命令
  6. virtualbox报错:Failed, trying without DKMS的解决方案
  7. python django查询12306火车票
  8. python载入图片序列_python – 使用matplotlib显示图像序列
  9. Camtasia2020注册机顶级屏幕录像视频编辑软件安装教程
  10. 时间管理—重要紧急四象限法则
  11. Go标准容器之Ring
  12. 算法语句高中数学计算机,高中数学《基本算法语句》文字素材3 新人教A版必修3...
  13. iOS 微信支付开发流程
  14. RTOS成功取代Linux成为天猫精灵OS的关键 -- AliOS Things 维测专题
  15. Beautifulsoup模块
  16. Qt断开信号与槽的方法,Qt信号的处理 (connect和disconnect和blockSignals的使用方法)
  17. python如何读pst文件_Python 学习 第11篇:文件读写
  18. Vue小黑记事本案例
  19. 出版专业技术考试(初级)考前对策与考题分析(15-20真题)
  20. 函数和lambda表达式

热门文章

  1. css 友情链接效果,友链样式与位置很重要!
  2. 《软件项目管理(第二版)》第 10 章——项目收尾 重点部分总结
  3. http 错误 404.0 - not found_电脑Regsvr32 用法和错误消息的说明
  4. 共享内存简介及docker容器的shm设置与修改
  5. CMake常用命令整理
  6. PyTorch 分布式训练DDP 单机多卡快速上手
  7. python邮箱爆破_Python在线爆破邮箱账号密码测试代码(亲测可用)
  8. 为什么redis取出来是null_[2020] Redis 最新面试题
  9. 容大打印机ip修改工具_M1芯片版Mac无法连接打印机怎么办?
  10. html计算器_学习HTML、CSS和JavaScript的最佳方法是什么?