JAVA 日期类简单使用

切记在所有日期类中,计算机所认同的月份是 0、1、2、3、4。---

对应的是 1月份,2月份、3月份、4月份、5月份

Date类

三种创建方式。

不带参

得到现在的时间

Date date = new Date();
System.out.println(date);

带参输入自己想要的年月日(注意。这里0是一月)

(这里的年,不是输入年份,而是输入,现在年份距离1900年的间距。)

例如,我想要设置为2008年。↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

		Date date1 = new Date(2008-1900,0,12);
		System.out.println(date1);

带参输入自己想要的年月日时分秒(注意。这里0是一月)

                Date date2 = new Date(2008-1900,0,1,12,11,58);
		System.out.println(date2);

带参数 参数为字符串:

(字符串的话,必须输入指定格式的字符串。字符串没有那么讲究,年月日是多少就是多少)

Date date = new Date("1998,1,6");

这个就代表 1998 年 1 月 6 日;
 

Date类的简单运用。计算两个日期间相差几天。

使用getTime()方法,计算出现在时间距离1970 年 1 月 1 日 00:00:00 的时间。。。:毫秒

两个时间 的毫秒相减。。。除以    24*60*60*1000 一天该有的毫秒数。

                Date date = new Date(2008-1900,0,15);
		Date date1 = new Date(2008-1900,0,12);
		long subtract = (date.getTime()-date1.getTime())/(24*60*60*1000);
		System.out.println(subtract);

SimpleDateFormat类

用来格式化日期的

相当于构造一个日期模板

format()方法。将Date日期类返回城想要的字符串格式

原本。一个Date()得到了现在的时间。他得到的的属性是非常全的,包括时分秒。毫秒。。星期几。。等等

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

创建一个。年 -  月 - 日 (年、月、日 使用固定的单词,代表。'-'号等是随便写的)

                Date date = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		String str =format.format(date);
		System.out.println(str);

使用设计好的模板。得到相应的字符串。

2018-02-21

换一个模板。

这次加上时分秒

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

运行

                Date date = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str =format.format(date);
		System.out.println(str);
 

运行结果为:2018-02-21 10:35:41

小技巧:使用固定的天数,获取当月的第一天

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-01");
                Date date = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-01");
		String str = format.format(date);
		System.out.println(str);

 

 

parse()方法。将固定格式的字符串转换成想要的Date格式。

与format相反的用法  

                String str ="2018-02-21 10:35:41";
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			Date date = format.parse(str);
			System.out.println(date);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

使用固定的格式接受一个字符串里的时间参数。

 

字母日期或时间元素表示示例
GEra 标志符TextAD
yYear1996; 96
M年中的月份MonthJuly; Jul; 07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesday; Tue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区General time zonePacific Standard Time; PST; GMT-08:00
Z时区RFC 822 time zone-0800

 

 

 

Calendar类 ----日历类

 

Calendar类是一个抽象类。不能new 对象 ,使用固定的方法返回一个对象

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓获取现在的日期。使用相应的参数得到。年。月

想要获取  年、月、日、星期几、时、分、秒、...等等只要使用get()方法加上相应的参数即可

		Calendar calendar = Calendar.getInstance();
		System.out.println(calendar.get(Calendar.YEAR));
		System.out.println(calendar.get(Calendar.MONTH)+1);//月在计算机中是 0、1、2、3
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));Calendar calendar = Calendar.getInstance();
		System.out.println(calendar.get(Calendar.YEAR));
		System.out.println(calendar.get(Calendar.MONTH)+1);//月在计算机中是 0、1、2、3
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));

我对于参数的理解。

YEAR  = 年

MONTH =月

DAY _OF_ MONTH = 理解成一个月中的第几天。

DAY _OF_ YEAR= 理解成一年中的第几天。(按这个记忆方式。YEAY 中的第 DAY)

DAY_OF_WEEK = 一星期中的第几天。   星期中的第几天。周日是第一天

求今天星期几。

  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

                Calendar calendar = Calendar.getInstance();
		System.out.println(calendar.get(Calendar.DAY_OF_WEEK));

如果今天是周日那么结果是 1,(周日是,一星期的第一天)

如果今天是周一那么结果是2.---------------------

使用Calendar设置时间

设置是使用set()方法。想要设置那个时间段,依次设置就行

设置年月日↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    

                Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.YEAR,2018);
		calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
		calendar.set(Calendar.DAY_OF_MONTH,21);

 

想要使用SimpleDateFormat类来 格式化成相应的字符串。

需要把 Calendar类转换成 Date

		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.YEAR,2018);
		calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
		calendar.set(Calendar.DAY_OF_MONTH,21);
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(format.format(calendar.getTime()));

添加时间add()

把现在的时间多少天或者多少小时。

                Calendar calendar = Calendar.getInstance();
		
		calendar.set(Calendar.YEAR,2018);
		calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
		calendar.set(Calendar.DAY_OF_MONTH,21);

比如我想知道某个日期100天后星期几

                Calendar calendar = Calendar.getInstance();
		
		calendar.set(Calendar.YEAR,2018);
		calendar.set(Calendar.MONTH,1);///月份是 0、1、2、3、4、5、6...
		calendar.set(Calendar.DAY_OF_MONTH,21);
		//加上一百天。
		calendar.add(Calendar.DAY_OF_MONTH,100);
		
		int week = calendar.get(Calendar.DAY_OF_WEEK)-1;
		
		System.out.println(week==0?7:week);

↑↑↑↑↑↑↑↑↑↑↑负数是减去几天。

 

参数大全↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

字段摘要
static intALL_STYLES
          指示所有风格名称的 getDisplayNames 的风格说明符,比如 "January" 和 "Jan"。
static intAM
          指示从午夜到中午之前这段时间的 AM_PM 字段值。
static intAM_PM
          getset 的字段数字,指示 HOUR 是在中午之前还是在中午之后。
static intAPRIL
          指示在格里高利历和罗马儒略历中一年中第四个月的 MONTH 字段值。
protected  booleanareFieldsSet
          如果 fields[] 与当前的设置时间同步,则返回 true。
static intAUGUST
          指示在格里高利历和罗马儒略历中一年中第八个月的 MONTH 字段值。
static intDATE
          getset 的字段数字,指示一个月中的某天。
static intDAY_OF_MONTH
          getset 的字段数字,指示一个月中的某天。
static intDAY_OF_WEEK
          getset 的字段数字,指示一个星期中的某天。
static intDAY_OF_WEEK_IN_MONTH
          getset 的字段数字,指示当前月中的第几个星期。
static intDAY_OF_YEAR
          getset 的字段数字,指示当前年中的天数。
static intDECEMBER
          指示在格里高利历和罗马儒略历中一年中第十二个月的 MONTH 字段值。
static intDST_OFFSET
          getset 的字段数字,以毫秒为单位指示夏令时的偏移量。
static intERA
          指示年代的 getset 的字段数字,比如罗马儒略历中的 AD 或 BC。
static intFEBRUARY
          指示在格里高利历和罗马儒略历中一年中第二个月的 MONTH 字段值。
static intFIELD_COUNT
          getset 可识别的不同字段的数量。
protected  int[]fields
          此日历当前设置时间的日历字段值。
static intFRIDAY
          指示 Friday 的 DAY_OF_WEEK 字段值。
static intHOUR
          getset 的字段数字,指示上午或下午的小时。
static intHOUR_OF_DAY
          getset 的字段数字,指示一天中的小时。
protected  boolean[]isSet
          通知是否设置了该日历某一指定日历字段的标志。
protected  booleanisTimeSet
          如果 time 值是一个有效值,则返回 true。
static intJANUARY
          指示在格里高利历和罗马儒略历中一年中第一个月的 MONTH 字段值。
static intJULY
          指示在格里高利历和罗马儒略历中一年中第七个月的 MONTH 字段值。
static intJUNE
          指示在格里高利历和罗马儒略历中一年中第六个月的 MONTH 字段值。
static intLONG
          指示长名称的 getDisplayNamegetDisplayNames 的风格说明符,比如 "January"。
static intMARCH
          指示在格里高利历和罗马儒略历中一年中第三个月的 MONTH 字段值。
static intMAY
          指示在格里高利历和罗马儒略历中一年中第五个月的 MONTH 字段值。
static intMILLISECOND
          getset 的字段数字,指示一秒中的毫秒。
static intMINUTE
          getset 的字段数字,指示一小时中的分钟。
static intMONDAY
          指示 Monday 的 DAY_OF_WEEK 字段值。
static intMONTH
          指示月份的 getset 的字段数字。
static intNOVEMBER
          指示在格里高利历和罗马儒略历中一年中第十一个月的 MONTH 字段值。
static intOCTOBER
          指示在格里高利历和罗马儒略历中一年中第十个月的 MONTH 字段值。
static intPM
          指示从中午到午夜之前这段时间的 AM_PM 字段值。
static intSATURDAY
          指示 Saturday 的 DAY_OF_WEEK 字段值。
static intSECOND
          getset 的字段数字,指示一分钟中的秒。
static intSEPTEMBER
          指示在格里高利历和罗马儒略历中一年中第九个月的 MONTH 字段值。
static intSHORT
          指示短名称的 getDisplayNamegetDisplayNames 的风格说明符,比如 "Jan"。
static intSUNDAY
          指示 Sunday 的 DAY_OF_WEEK 字段值。
static intTHURSDAY
          指示 Thursday 的 DAY_OF_WEEK 字段值。
protected  longtime
          日历的当前设置时间,以毫秒为单位,表示自格林威治标准时间 1970 年 1月 1 日 0:00:00 后经过的时间。
static intTUESDAY
          指示 Tuesday 的 DAY_OF_WEEK 字段值。
static intUNDECIMBER
          指示一年中第十三个月的 MONTH 字段值。
static intWEDNESDAY
          指示 Wednesday 的 DAY_OF_WEEK 字段值。
static intWEEK_OF_MONTH
          getset 的字段数字,指示当前月中的星期数。
static intWEEK_OF_YEAR
          getset 的字段数字,指示当前年中的星期数。
static intYEAR
          指示年的 getset 的字段数字。
static intZONE_OFFSET
          getset 的字段数字,以毫秒为单位指示距 GMT 的大致偏移量。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SUNbrightness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值