1.毫秒值的概念和作用

2.Date类的构造方法和成员方法

Demo02Date.java

package Date;import java.util.Date;public class Demo02Date {public static void main(String[] args) {//1.构造方法Date,分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。Date date1 = new Date();System.out.println(date1);//Fri Nov 12 20:13:28 CST 2021//2.Date(long date)分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,// 即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。Date date2 = new Date(17779999L);Date date3 = new Date(0L);System.out.println(date2);//Thu Jan 01 12:56:19 CST 1970System.out.println(date3);//Thu Jan 01 08:00:00 CST 1970//3.getTime()//          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。Date date4 = new Date();System.out.println(date4.getTime());//1636719470013}
}

3.DateFormat类和SimpleFormat类


Demo01DateFormat.java

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class Demo01DateFormat {public static void main(String[] args) throws ParseException {//1.使用DateFormat类中的format方法,把日期格式化为文本//String format(Date date) 按照指定格式,把Date日期,格式化为符合模式的字符串/** 使用步骤:*   1.创建SimpleDateFormat对象,构造方法中传递指定的模式*   2.调用SimpleDateFormat对象中的方法format(parse),按照构造方法中指定的模式,把Date日期格式化为复合模式的字符串(文本)*   把符合构造方法中模式的字符串,解析为Date日期* */SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = new Date();String format = simpleDateFormat.format(date);System.out.println(date);//Sat Nov 13 10:43:05 CST 2021System.out.println(format);//2021-11-13 10:43:05/*2.使用DateFormat类中的方法parse,把文本解析为日期* Date parse(String source) 把符合模式的字符串,解析为Date日期* 注意:*   public Date parse(String source) throws ParseException*   parse方法声明了一个异常叫ParseException解析异常*   如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常*   调用一个抛出了异常的方法,就必须处理这个异常,要么throws继续声明抛出这个异常,呀么try...catch自己处理这个异常* */SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date parse = sdf.parse(format);System.out.println(parse);}
}

4.练习

DatePract.java

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;//使用日期相关的API,计算出一个人已经出生了多少天/*
* 思路:
*   1.使用Scanner类中的方法next,获取出生日期
*   2.使用DateFormat类中的方法parse,把字符串的出生日期解析为Date格式
*   3.把Date格式的出生日期转换为毫秒值
*   4.获取当前的日期,转换为毫秒值
*   5.使用当前日期的毫秒值-出生日期的毫秒值
*   6.把毫秒值的差值转换为天(s/1000/60/60/24)(注意刚开始自己还除以365,不对的!!!!)
* */
public class DatePract {public static void main(String[] args) throws ParseException {Date dateNow = new Date();System.out.println("现在时间是:" + dateNow);Long dataNew = dateNow.getTime();System.out.println("请输入你的出生日期:");//String dateBorn = new Scanner(System.in).next("yyyy-MM-dd HH:mm:ss");String dateBorn = new Scanner(System.in).next();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Long dateOld = sdf.parse(dateBorn).getTime();int days = (int) ((dataNew - dateOld) / ( 24 * 60 * 60 * 1000));System.out.println(days);//8799}
}

5.Calendar类

Date的很多类已经不用了,常用Calendar类来代替

6.Calendar类常用的成员变量方法

Demo02Calendar.java

package Calender;import java.util.Calendar;/**   Calendar类的成员方法:*       -public int get(int field):返回给定日历字段的值*       -public void set(int field,int value):将给定的日历字段设置为给定值*       -public abstract void add(int field, int amount):根据日历规则,为给定的日历字段添加或减去指定的时间量*       -public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象*   成员方法的参数:*       int field :日历类的字段,可以用Calendar类的静态变量获取* */
public class Demo02Calendar {public static void main(String[] args) {Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);System.out.println(year);int month = c.get(Calendar.MONTH) + 1;//西方月份0-11,中国1-12System.out.println(month);int day = c.get(Calendar.DATE);//DAY_OF_MONTH一样效果System.out.println(day);/*2.* public void set(int field, int value):将给定的日历字段设置为给定值* 参数:*   int field:传递指定的日历字段(YEAR,MONTH)*   int value:传递的字段设置的具体的值* */c.set(Calendar.YEAR,2010);System.out.println(c.get(Calendar.YEAR));//2010//同时设置年月日,可以使用set的重载方法//c.set(8888,8,8);//3.-public abstract void add(int field, int amount):根据日历规则,为给定的日历字段添加或减去指定的时间量c.add(Calendar.YEAR,+2);System.out.println(c.get(Calendar.YEAR));//2012c.add(Calendar.YEAR,-2);System.out.println(c.get(Calendar.YEAR));//2010//4.public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象//日历对象转化为日期对象System.out.println(c.getTime());//Sat Nov 13 19:14:04 CST 2010}
}
//2021
//11
//13

7.时间日期相关类总结

2021-11-12Date类相关推荐

  1. 2021湖南省计算机类考研

    2021湖南省计算机类考研 1. 专业选择 湖南省内,计算机类考研可选择专业:计算机科学与技术.软件工程.通信工程等 计算机科学与技术专业学习范围比较广泛,软件类,网络通信类,人工智能类都会涉及:就业 ...

  2. 2021/11/27大数据1+XJava答案

    2021/11/27 步骤二 //已经提供Student类的属性,补充完成该类的有参(五个参数)及无参构造方法public Student(){}public Student(String name, ...

  3. 实战:怎样把间隔的几个commit整理成1个?-2021.11.18

    实战:怎样把间隔的几个commit整理成1个?-2021.11.18 目录 文章目录 实战:怎样把间隔的几个commit整理成1个?-2021.11.18 目录 文档来源 实验环境 实验软件(无) 1 ...

  4. 电子信息计算机专业院校排名,2021电子信息类专业大学全国排名

    2021电子信息类专业大学全国排名2021-06-10 11:33:28文/叶丹 中国电子信息类专业最好的大学有哪几所,中国哪些本科大学电子信息门类专业实力最强?下面是全国最好的电子信息类专业大学排名 ...

  5. 尚硅谷——谷粒商城项目开发记录——2021.11.19

    尚硅谷--谷粒商城项目开发记录--2021.11.19 出现错误 1.SpringBoot测试类出现Could not autowire. No beans of 'BrandService' typ ...

  6. 人工检查,11 个类、97942 个标签,Roboflow 开源自动驾驶数据集可以使用啦

    2020-02-16 11:17 导语:缺失大量行人.骑车人标注的无人驾驶数据集可能是个大问题 机器学习即将带来一系列的社会变革,其中一个被大肆宣传的领域是自动驾驶.但是,伴随着自动驾驶技术的巨大动力 ...

  7. 疲劳驾驶数据集_人工检查,11 个类、97942 个标签,Roboflow 开源自动驾驶数据集可以使用啦...

    机器学习即将带来一系列的社会变革,其中一个被大肆宣传的领域是自动驾驶.但是,伴随着自动驾驶技术的巨大动力而来的是巨大的责任,如果一辆自动驾驶汽车训练的不够好,可能会引发车祸,导致人员伤亡. 这是一个非 ...

  8. 史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29完善更新小程序代码,

    2021.11.29 更新文章 你好,我是博主宁在春,一起学习吧!!! 写这篇文章的原因,主要是因为最近在写毕业设计,用到了小程序,这中间曲曲折折,一言难尽啊.毕业设计真的让人麻脑阔

  9. c++11 thread类的简单使用

    一个thread对象就代表一个线程执行,当对象创建完成后,线程函数就开始执行,下面这段话是c++11的thread类介绍. An initialized thread object represent ...

  10. 读论文——Pre-Training with Whole Word Masking for Chinese BERT(2021 11.25)

    第一遍 标题以及作者(2021 11.25) 摘要 本文基于BERT,在RoBERTa上进行一系列改进,提出了用于中文的预训练模型MacBERT. 提出了一种新的掩码策略,MLM as correct ...

最新文章

  1. 4K P60 444 相关的事
  2. 终于把网站最后一个模块了结了
  3. ECMAScript 2021(ES12)新特性简介
  4. 广联达2018模板算量步骤_广联达钢结构算量软件可以和广联达量筋合一GTJ2018互导吗?...
  5. mysql路径猜解_猜解数据库(MYSQL)信息
  6. 在虚幻引擎5中构建你的首款游戏 - 03 - 模型和材质蓝图
  7. postman下载与汉化
  8. linux 端口关闭防火墙设置,LINUX关闭防火墙、开放特定端口等常用操作
  9. 高尔顿钉板实验的matlab代码动画演示
  10. 【文献学习】《Reference-free detection of isolated SNPs》
  11. 商务云PHP网络验证系统,易如意PHP网络验证系统1.3【开源】+调用模块源码
  12. 上千个游戏模型推荐 好用又实用,流行又火爆的都在这里
  13. 技术党求生骚操作!手把手教你做一只口红色号识别器!
  14. kali网络问题解决办法
  15. python余弦定理求角_python余弦定理计算相似度
  16. symantec忘记了密码时如何卸载?
  17. android Phone 距离感应器锁的实现
  18. 转的: 健康程序员:五分钟与鼠标手说再见
  19. UE4学习笔记2----蓝图实现物体来回移动
  20. c语言 保留两位小数

热门文章

  1. java socket 连接异常_java.net.SocketException:软件导致连接中止:套接字写错误
  2. 打开有视频的文件夹~~当遇到某些特定的视屏格式就会出现Activemovie Window:Explorer.EXE-应用程序错误
  3. BZOJ-2761-不重复数字
  4. [CODEVS 1173] 最优贸易
  5. AtCoder AGC032E Modulo Pairing (二分、贪心与结论)
  6. 自主招生计算机专业自我介绍,自主招生自我介绍参考范文
  7. npm 安装yarn_问题解决记录-npm和yarn全局安装成功后命令无法执行的问题
  8. linux系统下cpu如何测试,Linux 系统下如何查看CPU个数
  9. ip addr 相关操作
  10. Windows Presentation Foundation (WPF)中的命令(Commands)简述