一、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类的说明,这里做简单介绍,规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出:
- 当出现y时,会将y替换成年
- 当出现M时,会将M替换成月
- 当出现d时,会将d替换成日
- 当出现H时,会将H替换成时
- 当出现m时,会将m替换成分
- 当出现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+"天");
}
}
}