Java的calendar类用法
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类用法相关推荐
- java中用法实例_java中Calendar类用法实例详解
本文实例讲述了java中Calendar类用法.分享给大家供大家参考,具体如下: java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,对后面项目中使用时期的时候有帮助. Calen ...
- 【零基础学Java】—Calendar类(三十四)
[零基础学Java]-Calendar类(三十四) java.util.Calendar日历类 Calendar类是一个抽象类,里面提供了很多操作日历字段的方法 Calendar类无法直接创建对象,里 ...
- JAVA中Calendar类的常用方法
Calender类 java.util.Calendar类:日历类 Canlender类是一个抽象类,里面提供了很多操作日历字段的方法(YEAR.Months.day_OF_MNTH.HOUR) Ca ...
- Java的Calendar类怎么用
通过例子快速使用java的calendar类 1.获取目前时间,get方法 Calendar c=Calendar.getInstance();//获取一个日历类的实例//获取当前时间int year ...
- Java中Calendar类基本用法
Calendar import java.util.Calendar;public class _Calendar {public static void main(String[] args) {/ ...
- JAVA当中Calendar类打印日历表单
一:引言 代码当中注释很详尽,直接上码: 二:上码 package cn.wyj.one;import java.text.DateFormat; import java.text.ParseExce ...
- Java Date Calendar类的使用 如何计算两个日期之间有多少天
Java工具类:java.util.Date,是Java中经常被用到一个日期时间的类.可以用来表示具体的年月日时分秒.java.util.Calendar,是日历类 导包:import java.ut ...
- 使用Java的Calendar类计算两段时间之间的工作日的天/小时/分钟/秒数
计算两段时间之间的工作日的天/小时/分钟/秒数 我们能经常遇到一些需求,让获取工作日的时间(当然,调休也上班也是工作日哈!),之前自己给这搞得头大,所以整理总结,把该工具类记录下来,希望大家能用到的时 ...
- java基础---Calendar类
package com.henu;import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;import java.text.Si ...
最新文章
- Win32 汇编语句模板
- HUT-1556 网址
- Do not use built-in or reserved HTML elements as component id等等vue warn问题
- 利用JS+Ajax实现下拉列表无刷联动,及其相关
- fill()函数和fill_n()函数
- 【实用技巧】虚拟机一键更换IP,更换网络不再是问题
- svn和Git有什么关系
- js 中国时间转换美国太平洋标准时间
- JAVA-初步认识-第五章-数组-常见操作-进制转换(查表法)
- 前端程序员福利 利用node写接口
- 剑客之剑——玄铁重剑(VS Code)
- 在一家虚拟现实公司工作是什么感受?
- 用php,java快速建网站
- 推荐10款设计软件,全是设计大牛收藏夹里的
- docker中--privileged的使用
- 前端开发人员的桌面应用神器 Electron
- 包含各种版本谷歌相机的网址及下载地址
- 给出年、月、日,计算该日是该年的第几天?
- Part1:使用 TensorFlow 和 Keras 的 NeRF计算机图形学和深度学习——计算机图形学世界中相机的工作原理
- 基于蓝牙网关技术的蓝牙室内定位系统--新导智能
热门文章
- 基于倒排表的电力调度知识问答系统构建 (100行代码带你实现nlp问答系统)
- if ‘class_name‘ not in config[0] or config[0][‘class_name‘] == ‘Merge‘:
- 【C++】__gcd(x,y)函数
- JavaScript实现跳跃游戏的贪婪方法的算法(附完整源码)
- OpenCASCADE:使用 XSTEPDRAW
- 演示 wxPreferencesEditor 使用的示例
- boost::spirit模块使用 phoenix 进行实际表达式评估的语法和语义操作的测试程序
- boost::sort模块实现spreadsort 字符串函子排序示例
- boost::log::sinks::debug_output_backend用法的测试程序
- boost::adjacency_matrix用法的测试程序