YEAR  这是哪年
MONTH  这是月(从0开始)
WEEK_OF_YEAR 今年的第几星期
WEEK_OF_MONTH 这个月的第几星期(从一开始)
DATE  今天几号
DAY_OF_MONTH  这个月的第几天
DAY_OF_YEAR   这一年的第几天
DAY_OF_WEEK   这周周几(从日开始计算,从1计算)
DAY_OF_WEEK_IN_MONTH 第几周(从第一天开始算一周)

AM_PM  上午还是下午0为上午,1为下午
HOUR 12小时制几点
HOUR_OF_DAY  24小时制几点
MINUTE  多少分
SECOND  多少秒
MILLISECOND  多少毫秒
ZONE_OFFSET  时区
DST_OFFSET

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处理日期时间常用方法:

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

例:

Java代码Calendar cal = Calendar.getInstance();//使用默认时区和语言环境获得一个日历。   
cal.add(Calendar.DAY_OF_MONTH, -1);//取当前日期的前一天.   
cal.add(Calendar.DAY_OF_MONTH, +1);//取当前日期的后一天.   
//通过格式化输出日期   
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");   
System.out.println("Today is:"+format.format(Calendar.getInstance().getTime()));   
System.out.println("yesterday is:"+format.format(cal.getTime()));  
得到2007-12-25日期:
 
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的calendar类用法相关推荐

  1. java中用法实例_java中Calendar类用法实例详解

    本文实例讲述了java中Calendar类用法.分享给大家供大家参考,具体如下: java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,对后面项目中使用时期的时候有帮助. Calen ...

  2. 【零基础学Java】—Calendar类(三十四)

    [零基础学Java]-Calendar类(三十四) java.util.Calendar日历类 Calendar类是一个抽象类,里面提供了很多操作日历字段的方法 Calendar类无法直接创建对象,里 ...

  3. JAVA中Calendar类的常用方法

    Calender类 java.util.Calendar类:日历类 Canlender类是一个抽象类,里面提供了很多操作日历字段的方法(YEAR.Months.day_OF_MNTH.HOUR) Ca ...

  4. Java的Calendar类怎么用

    通过例子快速使用java的calendar类 1.获取目前时间,get方法 Calendar c=Calendar.getInstance();//获取一个日历类的实例//获取当前时间int year ...

  5. Java中Calendar类基本用法

    Calendar import java.util.Calendar;public class _Calendar {public static void main(String[] args) {/ ...

  6. JAVA当中Calendar类打印日历表单

    一:引言 代码当中注释很详尽,直接上码: 二:上码 package cn.wyj.one;import java.text.DateFormat; import java.text.ParseExce ...

  7. Java Date Calendar类的使用 如何计算两个日期之间有多少天

    Java工具类:java.util.Date,是Java中经常被用到一个日期时间的类.可以用来表示具体的年月日时分秒.java.util.Calendar,是日历类 导包:import java.ut ...

  8. 使用Java的Calendar类计算两段时间之间的工作日的天/小时/分钟/秒数

    计算两段时间之间的工作日的天/小时/分钟/秒数 我们能经常遇到一些需求,让获取工作日的时间(当然,调休也上班也是工作日哈!),之前自己给这搞得头大,所以整理总结,把该工具类记录下来,希望大家能用到的时 ...

  9. java基础---Calendar类

    package com.henu;import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;import java.text.Si ...

最新文章

  1. Win32 汇编语句模板
  2. HUT-1556 网址
  3. Do not use built-in or reserved HTML elements as component id等等vue warn问题
  4. 利用JS+Ajax实现下拉列表无刷联动,及其相关
  5. fill()函数和fill_n()函数
  6. 【实用技巧】虚拟机一键更换IP,更换网络不再是问题
  7. svn和Git有什么关系
  8. js 中国时间转换美国太平洋标准时间
  9. JAVA-初步认识-第五章-数组-常见操作-进制转换(查表法)
  10. 前端程序员福利 利用node写接口
  11. 剑客之剑——玄铁重剑(VS Code)
  12. 在一家虚拟现实公司工作是什么感受?
  13. 用php,java快速建网站
  14. 推荐10款设计软件,全是设计大牛收藏夹里的
  15. docker中--privileged的使用
  16. 前端开发人员的桌面应用神器 Electron
  17. 包含各种版本谷歌相机的网址及下载地址
  18. 给出年、月、日,计算该日是该年的第几天?
  19. Part1:使用 TensorFlow 和 Keras 的 NeRF计算机图形学和深度学习——计算机图形学世界中相机的工作原理
  20. 基于蓝牙网关技术的蓝牙室内定位系统--新导智能

热门文章

  1. 基于倒排表的电力调度知识问答系统构建 (100行代码带你实现nlp问答系统)
  2. if ‘class_name‘ not in config[0] or config[0][‘class_name‘] == ‘Merge‘:
  3. 【C++】__gcd(x,y)函数
  4. JavaScript实现跳跃游戏的贪婪方法的算法(附完整源码)
  5. OpenCASCADE:使用 XSTEPDRAW
  6. 演示 wxPreferencesEditor 使用的示例
  7. boost::spirit模块使用 phoenix 进行实际表达式评估的语法和语义操作的测试程序
  8. boost::sort模块实现spreadsort 字符串函子排序示例
  9. boost::log::sinks::debug_output_backend用法的测试程序
  10. boost::adjacency_matrix用法的测试程序