nxmxx / blog

记录我的学习路程和我的进步
1 stars 0 forks source link

date类 #24

Open nxmxx opened 4 years ago

nxmxx commented 4 years ago

Date类 时间原点:1970年1月1日;中国在东八区时差有8小时。 Date类最小的单位为毫秒。

date()方法: 这是date无参数方法,,创建Date 类对象,直接打印对象得到当前时间Thu Aug 20 15:20:06 CST 2020。

代码: import java.util.Date;

public class Datet { public static void main(String[] args) { dateTime1(); } private static void dateTime1() { Date date =new Date(); System.out.println(date );

} } 运行结果 cn.javase.video.study.Date.Datet Thu Aug 20 15:20:06 CST 2020

Process finished with exit code 0

Date(long date)有参数方法: date(毫秒值+l ),将毫秒值转换为date默认日期格式。 private static void dateTime2() { // date有参数方法 将毫秒值转换为date日期 Date date = new Date(77884664l); System.out.println(date);

}

getTime();方法: 获取当前时间距离时间原点的毫秒值,与之相同功能方法是System类中的currentTimewill方法。 public static void dateTime3() { // gitTime()方法,获取当前时间距时间原点的毫秒值 Date date = new Date(); long gt = date.getTime(); System.out.println(gt); }

Dateformat方法: 因为DateFormat是一个抽象类,所以SimpleDateFormat实现DateFormat。 y 年 M 月 d 日 H 时 m 分 s 秒 SimpleDateFormat中的format()方法: 将默认格式的日期转换为自定义格式的文本输出; private static void dateTime6() { / format()方法 :将默认格式的日期转换为自定义格式的文本输出;/ // 创建SimpleDateFormat对象,并将自定义的格式定义在new出的SimpleDateFormat()中。 SimpleDateFormat slf = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); // 创建一个date,获取当前时间 Date date =new Date(); // 调用format方法,将获取的默认格式时间传进format方法中,并将结果赋值给变量sf String sf = slf.format(date); // 打印自定义后日期的格式。 System.out.println(sf);

}

SimpleDateFormat中的parse()方法: 定义: Parse方法恰好与format方法相反,parse方法是将其他自定义格式的日期格式(符合格式要求的自定义日期格式(某年某月某日或者某—某—某或者某/某/某等)) 抛出异常处理: Parse()方法会有抛出异常处理,所以在使用时有两个办法解决,第一个是继续抛出异常(在parse()上快捷键ALT+回车,选择第一个;并且在调用的main函数中也抛出异常),第二个是解决异常。

private static void dateTime5() throws ParseException { / parse()方法 :将自定义格式转换为默认格式的日期的文本输出;/ SimpleDateFormat slf =new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); Date sf2 = slf.parse("2020-08-20-15-59-17"); System.out.println(sf2); }

练习:算出某个人出生到现在多少天 思路: 1.Scanner按格式输入String类型出生日期 2.将出生日期转换为默认格式日期SimpleDateFormat.parse() 3.将默认格式日期转换为毫秒(getTime()) 4.获取当前日期毫秒值 5.出生天数=(当前毫秒值-出生日期毫秒值+(8246060)(八小时时差))/(1000246060) 6.打印结果

package cn.javase.video.study.Date;

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

public class Brithdaytime { public static void main(String[] args) throws ParseException { brithdayTime(); }

public static void brithdayTime() throws ParseException {

// 先获取今天的毫秒值 // Scanner输入生日 // 两者相减转换为天数

// 出生日期 Scanner sc =new Scanner(System.in); System.out.println("请输入你的生日:xxxx年XX月XX日"); String brithdayTimes = sc.next();

// 将出生日期转换为默认格式再转为毫秒 SimpleDateFormat slf =new SimpleDateFormat("yyyy年MM月dd日"); //创建SimpleDateFormat对象时要在new出的SimpleDateFormat后加入你自定义的日期格式, // 无论是你转成自定义,还是自定义转成默认,都写的是自定义的格式。 Date brithdayTimess = slf.parse(brithdayTimes); // System.out.println(brithdayTimess);

    long brithdayTimessTime = brithdayTimess.getTime();

// System.out.println(brithdayTimessTime);

// 现在日期 Date date = new Date(); long nowTime = date.getTime();

    long day  =(nowTime-brithdayTimessTime)/(1000*24*60*60);
    System.out.println("你出生了"+day+"天" );

    return;
}

}