Java Date、DateFormat、Clender类

一、Date类

 

package demo2;

import java.util.Date;

public class riqi {
	public static void main(String[] args) {
		//Date 毫秒和日期的转换
		//1.毫秒转日期  
		//	方法一 Date()构造方法,方法二setTime()方法
		Date date1 = new Date(1000);
		Date date2 = new Date();
		date2.setTime(2000);
		System.out.println(date1);
		System.out.println(date2);
		
		//2.日期转毫秒
		//getTime()方法
		Date date3 = new Date();
		System.out.println(date3.getTime());
	}
}

 

二、DateFormat类

DateFormat 是一个抽象类,不能创建对象, 它的函数必须要子类对象区调用。
DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象。

指定格式的具体规则我们可参照SimpleDateFormat类的说明,这里做简单介绍,规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出:
  1. 当出现y时,会将y替换成年
  2. 当出现M时,会将M替换成月
  3. 当出现d时,会将d替换成日
  4. 当出现H时,会将H替换成时
  5. 当出现m时,会将m替换成分
  6. 当出现s时,会将s替换成秒
package demo3;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class dateform {
	public static void main(String[] args) throws ParseException {
		//日期转文本 format()
		//因为DateFormat是抽象类,所以使子类SimpleDateFormat创建对象
		SimpleDateFormat simDate = new SimpleDateFormat("yyyy年-MM月-dd日");
		Date date = new Date();
		String strdate = simDate.format(date);
		System.out.println(strdate);
		
		//文本转日期 parse()
		SimpleDateFormat simDate1 = new SimpleDateFormat("yyyy年MM月dd");
		String str  = "2019年4月8日";
		Date date1 = simDate1.parse(str);
		System.out.println(date1);
		
	}
}

三、Calender

 

四、综合练习

 

package demo4;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class rili {
	public static void main(String[] args) throws ParseException {
		//算自己活了多少天
		//function();
		//算闰年
		//function1();
		//距离2050年10月1日还有多少天
		function2();
	}
	/*
	 * 判断距离2050年-10-1还有多少天
	 */
	public static void function2(){
		//创建日历子类对象
		Calendar ca = Calendar.getInstance();
		//设置设置日期2050-10-1
		ca.set(2050, 9, 1);
		//将Calender对象转换为Date对象
		Date future = ca.getTime();
		//得到2050-10-1毫秒数
		Long futureSecond = future.getTime();
		//获取今天的Date
		Date today = new Date();
		//将今天的Date转换为毫秒
		long todaySecond = today.getTime();
		//求差值
		long second = futureSecond - todaySecond;
		System.out.println("今天距离2050-10-1还有:  "+second/1000/60/60/24+" 天");
	}
	/*
	 * 判断是不是闰年
	 */
	public static void function1(){
		//获取Calender已知子类对象
		Calendar ca = Calendar.getInstance();
		//设置日期,将日期设置为3月1,,月份范围为0-11,所以3月的值为2
		ca.set(2016, 2, 1);
		//add 向前偏移一天,如果是29天,则是闰年,如果不是就是平年
		ca.add(Calendar.DAY_OF_MONTH, -1);
		int day  = ca.get(Calendar.DAY_OF_MONTH);
		System.out.println(day);
		if(day==29){
			System.out.println("闰年");
		}
		else {
			System.out.println("平年");
		}
	}
	/*
	 * 用于计算已经生存了多少天
	 */
	public static void function() throws ParseException{
		//获取今天的Date值
		Date today = new Date();
		//将Date转为毫秒值
		long todaySecond = today.getTime();
		
		System.out.println("请输入您的生日 格式为:yyyy-MM-dd");
		//获取生日那天的string 类型
		String strBirthday = new Scanner(System.in).next();
		//创建SimpleDateFomar对象,并创建格式
		SimpleDateFormat simpleDateBirthday = new SimpleDateFormat("yyyy-MM-dd");
		//将string 转为Date 类型
		Date Birthday =simpleDateBirthday.parse(strBirthday);
		//将Bithday  转为毫秒值
		long birthdaySeond = Birthday.getTime();
		
		//差值
		long second = todaySecond - birthdaySeond;
		
		if(second<0){
			System.out.println("还没有出生");
		}
		else {
			System.out.println("您已经生存:"+second/1000/60/60/24+"天");
		}
		
	}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值