java日期和时期类(Date和Calendar)

复习java日常语法,记下笔记,在方面自己的同时很开心能够帮到他人;

java进行日期操作一般分为Date和Calendar类:

Data类:

该类存在于java.util包中,基本构造方法主要有两个:

  1. Date()   分配Data对象进行初始化
  2. Date(long date) 分配时间对象并进行初始化,以表示自从标准基准时间(1970年1月1日00:00:00GMT)到现在指定的时间毫

例如:

public static void main(String[] args) {
		long timeMills = System.currentTimeMillis();
		Date date = new Date(timeMills);
		System.out.println(date); //2018-10-31
	}

其中System.currentTimeMills()是获得当前时间距离标准基准时间的时间差毫秒级。可以通过一下方式进行观察.

System.out.println(date.getTime());  //1540964373086  

这里不介绍Data类里面有关于时间比较的操作,官方建议使用Calendar。

由于数字(/1540964373086 )我们看不懂,我们需要对时间进行格式化操作,变成我们日常习惯的;

建议使用DateFormate的SimpleDateFormat类进行格式化:

import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;

public class MyDate {
	public static void main(String[] args) {
		long timeMills = System.currentTimeMillis();
		Date date = new Date(timeMills);
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");	
		DateFormat format1 = new SimpleDateFormat("yyyy年mm月dd日 hh:mm:ss EE", Locale.CHINA);
		System.out.println(format.format(date));  //2018-10-31 01:49:39

		System.out.println(format1.format(date)); //2018年49月31日 01:49:39 星期三
	}
}

在SimpleDataFormat中我们传入参数

yyyy:表示年;

MM-表示月份;

dd-表示天

hh;表示小时(12进制) HH(24进制)

ss;表示秒

EE 表示星期

 

 

Calendar类

是一个抽象类,它为特定瞬间例如YEAR,MONTH,DAY_OF_MONTH,HOUR 等日历字段之间等转换提供了一个方法。方便进行各种日期操作;

实例化:Calender 提供了一个方法getInstance,以获得当前类型等一个通用类型。

Calendar calender = Calendar.getInstance();

存在一下常用方法:

  1. add(int filed,int amount)  根据日历的规则,为规定的日历添加或者减去指定的时间;
  2. after(Object when)   判断此时间是否在指定when之后,返回判断结果;
  3. getInstance()   使用电脑默认时区和语言环境获得一个日历;
  4. set(int year,int month,int data,int hourOfDay,int minute)   设置日历字段年月日,时分秒;

 

实战小程序;倒计时北京2022冬奥会;2022年2月4日

import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;

public class OlympicWinterGames {
	public static void main(String[] args) {
		//计算冬奥会倒计时时间
		long currentMills = System.currentTimeMillis();
		Date date = new Date(currentMills);
		DateFormat format = new SimpleDateFormat("yyyy年mm月dd日",Locale.CHINA);
		System.out.println("今天是"+format.format(date));
		
		Calendar calendar = Calendar.getInstance();
		//因为月份是从0开始计算的
		calendar.set(2022,2-1,4);
		long olympicTime = calendar.getTimeInMillis();
		long day = (olympicTime-currentMills)/(1000*60*60*24);
		System.out.println("距离北京冬奥会还有"+day+"天");
		
	}
}	
//今天是2018年10月31日
//距离北京冬奥会还有1192天

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值