一、引入:
个人简介:本人是一所普通二本院校的计算机专业的大二学生, 曾经在大一也是非常的迷茫, 现如今对Java产生浓厚的兴趣,已经计划好了自己的学习路线,对Java这条路线的详细讲解,可参考b站动力节点的老杜的路线讲解视频,(动力节点的一系列教学视频都非常详细易懂,对初学者非常友好) 【Java零基础教程视频(适合Java 0基础,Java初学入门)】 https://www.bilibili.com/video/BV1Rx411876f/?p=737&share_source=copy_web&vd_source=af9fc3616fc27f6d911b4049964168ea |
二、Date类的简介
1.所在包 java.util.Date
2:主要的两个构造方法: new Date():获取当前系统时间(日期格式前默认外国时间表达式:例如:Sat Nov 05 17:39:52 CST 2022,之后的内容会涉及 SimpleDateFormat 类, 测试类有详细讲解)
三、Date的使用(重点)
(1)Date 与String类型的相互转化
1.这两个类的相互转化需要用到SimpleDateFormat 中的几个方法:
------1. format(Date date)(Date——>String)
------2. parse(String s)(String——>Date)
废话不多说直接上例题:(好理解)
程序一、new Date()的使用,以及SimpleDateFormat 的使用
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate01 {
public static void main(String[] args) throws Exception {
//知识点1(获取系统当前日期)
Date nowtTime=new Date(); //获取系统当前日期
System.out.println(nowtTime);//默认输出(没重编格式之前)外国式的日期
//知识点2(Date -----> String)
SimpleDateFormat simp=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//指定:日期的格式
String date01=simp.format(nowtTime);//将日期格式转化为String
System.out.println(date01);//输出重编日期格式后的日期
//知识点3(String ------> Date)
String time ="2008-08-09 15:01:05 666";
//在new SimpleDateFormat("日期字符"),格式必须和日期字符串相同
SimpleDateFormat simp2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
Date time2=simp2.parse(time);//(转化为Date形式) 得在main方法后 加 throws Exception 方可处理parse()方法出现的异常
System.out.println(time2);
}
}
程序2:new Date(long date) :计算从1970加上毫秒数的时间
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate03 {
public static void main(String[] args) {
Date time1=new Date(1);
Date time2 = new Date(24*60*60*1000);
SimpleDateFormat simp1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(simp1.format(time1));//1970-01-01 08:00:00 (没加)
System.out.println(simp1.format(time2));// 1970-01-02 08:00:00 这是加了一天毫秒的时间
//输出昨天当前这个点的时间 (获取1970至今的当前毫秒数 - 一天的毫秒数 = 昨天当前点的时间)
System.out.println(simp1.format(System.currentTimeMillis()-24*60*60*1000));
}
}
获取毫秒数(System.currentTimeMillis())
主要的内容有:
1.获取从1970年到至今的毫秒数
2.利用该方法计算一个程序的运行时间
public class TestDate02 {
public static void main(String[] args) {
//1.获取1970至今的毫秒数,并输出
long nowTimeMills=System.currentTimeMillis();
System.out.println(nowTimeMills);
//2.利用该方法计算一个程序所用时间
long beg=System.currentTimeMillis();//开始时间毫秒数
TestDate02.Pt();
long end=System.currentTimeMillis();//结束时间毫秒数
System.out.println("Pt()方法所用时间为:"+(end-beg)+"毫秒");
}
public static void Pt(){
for (int i=1;i<=100;i++){
System.out.println("heihei");
}
}
}
四、包含Date类的综合使用案例
题目:(1)String类练习:假设手机上有一个在后台采集用户使用APP习惯的软件,现在需要将采集到的信息整理存储到数据库中。请完成AppInfoAnalyses工作,方便数据库存储字段和信息,一条信息描述如下:
“美团|购物类|安装时间:2015-09-12|使用次数:8521次|目前版本号:v5.4”
要求用String相关类和API,解析出:
1)应用名称 2)应用类型 3)安装时间 4)使用次数 5)目前版本号
(2)日期和时间类练习:根据1)中给出日期格式(2015-09-12),计算到目前为止这个应用在用户手机上已安装天数。
我的案例实现:
程序1:
思路定义一个能分割字符方法取得时间字符串,
利用上述字符串转时间计算该APP 安装到今天的天数
用到的String类知识点
// 1:String类 substring()方法:该方法底层是数组,下标从0开始, ,split()方法,
// 1.1 substring(2) 这表示从下标为2的开始往后截取(包括下标2该元素)
// 1.2 split(“字符串”)方法,特例如果字符为 “|” 得转义为"\|"才能分割,返回值为 String []
// 1.3 indexOf()
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringExtract {
String [] arr=new String[5];
String appName,appType,appInputTime,appUseCount,appEdition;
public void Split(String s){
arr=s.split("\\|");
appName=arr[0];
appType=arr[1];
appInputTime=arr[2];
appUseCount=arr[3];
appEdition=arr[4];
}
// 定义计算该APP 今天的天数
public void intervalDays() throws ParseException { //parse () 抛出异常
int i=this.appInputTime.indexOf(":"); // 获取":"下标位置"
System.out.println(i); // 4
String time=this.appInputTime.substring(i+1);// 截取":" 以后的时间
System.out.println(time);// 2015-09-12
Date date=null;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd"); // 格式必须相同
date=sdf.parse(time); //将时间字符串转为Date类型
long time1=date.getTime(); // 获取得到的时间到1970日期的毫秒数
System.out.println("安装时候毫秒数"+time1);
long time2= System.currentTimeMillis(); // 获取1970到系统当前时间毫秒数
System.out.println("当前时间毫秒数"+time2);
long Days= (time2-time1)/(24*3600*1000);// 两个时间相减,除以一天的毫秒时间即可得间隔天数
System.out.println(this.appName+"下载间隔了"+Days+"天");
}
}
程序2:(测试上述类的功能)
import java.text.ParseException;
public class TestExtract {
public static void main(String[] args) {
String s="美团|购物类|安装时间:2015-09-12|使用次数:8521次|目前版本号:v5.4";
StringExtract stringExtract=new StringExtract();
stringExtract.Split(s);
System.out.println(stringExtract.appInputTime);
try {
stringExtract.intervalDays();
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("APP名字"+stringExtract.appName);
}
}
结果如下:
自我总结
没啥好说的想,多敲多练多想,多问多查,只要练习和总结足够多,熟练度肯定会上升,知识广度也会逐渐提高,希望大家一键三连支持一下。