long/Date/Calendar 【时间】

  • long - 毫秒值 System.currentTimeMillis();
    计数使用 - 效率问题,秒表
    简单时间计算,例如明天,昨天…

  • Date - new Date()
    不能计算
    判断时间先后 after before
    打印时间:年月日/时分秒

  • Calendar - 日历(万年历) - 抽象类

    get -> 获得时间字段 
    set -> 设置时间字段
    add -> 计算时间字段
    
  • 三种时间格式,功能互相没有冲突的

    long:适合做简单计算,7天之内的计算、计时
    Date:适合做时间格式输出,配合DateFormat
    Calendar:适合做时间计算、推算、获得时间分字段

  • DateFormat:是日期/时间格式化子类的抽象类
    SimpleDateFormat

     Date parse(String);
     String format(Date)
    
	@Test
	public void test01() {
		//long表示毫秒值
		long time =System.currentTimeMillis();//获得当前时间对应毫秒值(实时变化)
		System.out.println(time);
		System.out.println(Long.MAX_VALUE);
		//292471208
		System.out.println(Long.MAX_VALUE/1000/60/60/24/365);
		//long=0表示什么时间
		//计算机元年 1970年1月1日
	}
	@Test
	public void test02() {
		Date date= new Date();    //new Date对象 ->当前系统时间
		System.out.println(date); //显示当前系统时间对应年月日
		
		// int型防止越界:加L
		long time=1560479024379L +24L*60*60*1000*30; //计算30天后的时间
		//通过long类型获得Date类型时间
		date =new Date(time); 
		System.out.println(date);
		//int 类型最大为21亿,超过取值范围则溢出越界
		//运算符在计算时会把参与运算的数据统一类型
		System.out.println(24*60*60*1000*30);
	
	}
    @Test
	public void test03() {
		Date date=new Date();//当前
		Date date1=new Date(1560479024379L);
		//常用API
		boolean b=date.after(date1); //问date是否在date1之后-true
		System.out.println(b);
		b=date.before(date1);       //问date是否在date1之前-false
		System.out.println(b);
		
		//date ->long 获得时间对应的毫秒值
		long time =date.getTime();
		System.out.println(time);
		//获得当全前时间对应年日月时分秒
		System.out.println(date);
		//获得date1对应的年月日时分秒
		System.out.println(date1);
		//setTime
		date.setTime(time);
		
		
	}
//格林威治时间
	@Test
	public void test04() {
		Date date=new Date(0);
		System.out.println(date);
	}
    @Test  //Date->Calendar
	public void test05() {
		Calendar cal =Calendar.getInstance();
		System.out.println(cal);
		Date date=cal.getTime();
		System.out.println(date);
		
		
	}
	@Test
	public void test06() {
		Calendar cal=Calendar.getInstance();
		Date date=cal.getTime();
		System.out.println(date);
		//获得当前cal日历所对应的星期几
		int week=cal.get(Calendar.DAY_OF_WEEK);
		System.out.println(week);
		int month=cal.get(Calendar.MONTH);
		System.out.println(month==Calendar.MAY);
				
	}
@Test
	public void test07() {
		Calendar cal=Calendar.getInstance();
		//日期转到1994年3月1日
		cal.set(Calendar.YEAR,1994);
		cal.set(Calendar.MONTH,Calendar.MARCH);
		cal.set(Calendar.DATE,1);
		int week=cal.get(Calendar.DAY_OF_WEEK);
		System.out.println(week);
	
	}
//生产日期2019年3月20日 保质期45天 商品到期的前10天,当周的周三是促销日
	@Test
	public void test08() {
		Calendar cal=Calendar.getInstance();
		cal.set(Calendar.YEAR,2019);
		cal.set(Calendar.MONTH,Calendar.MARCH);
		cal.set(Calendar.DATE,20);
		System.out.println("该产品的生产日期为:"+cal.getTime());
		cal.add(Calendar.DATE,45);
		System.out.println("该产品保质期至:"+cal.getTime());
		//过35天是什么时候
		cal.add(Calendar.DATE,-10);
		System.out.println("到期前10天的日期是:"+cal.getTime());
		//这一天是星期几
		cal.get(Calendar.DAY_OF_WEEK);
		System.out.println("这天是:"+cal.getTime());
		//这周的周三
		int week=cal.get(Calendar.DAY_OF_WEEK);
		System.out.println(week);
		cal.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);
		System.out.println("这天搞活动:"+cal.getTime());
	}
	@Test
	public void test09() {
		//获得当前时间毫秒
		long time1=System.currentTimeMillis();
		//long转换成Date年月日时分秒
		Date date1=new Date();
		date1.setTime(time1);
		System.out.println("当前DATE为:"+date1);
		//long转换成Calendar类型
		Calendar cal1=Calendar.getInstance();
		cal1.setTimeInMillis(time1);
		System.out.println("当前Calendar为:"+cal1.getTime());
		
		//获得当前时间年月日时分秒
		Date date2=new Date();
		//转化成long
		long time2=date2.getTime();
		
	}
	@Test
	public void test10() throws ParseException {
		DateFormat df= new SimpleDateFormat("yyyy-mm-dd HH:ss EE");
		Date date=new Date();
		//Date->文本String
		String str=df.format(date);
		System.out.println(str);
		
		//String->Date
		df=new SimpleDateFormat("yyyy/MM/dd");
		String s="2019/06/14";
		Date d1=df.parse(s);
		System.out.println(d1);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值