一、System静态方法

点击查看代码
package com.Tang.StringDay01;

import org.junit.Test;

public class DateTimeTest {
/*
System类中的currentTimeMillis()方法
*/
@Test
public void test3(){
long time = System.currentTimeMillis();
//返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
//称为时间戳
System.out.println(time);
}
}

代码运行结果图

二、Date类

点击查看代码
 /*
java.tuil.Date类
1.两个构造器的使用
Date():创建了一个对应当前时间的Date对象
创建指定毫秒数的Date对象
2.两个方法的使用
toString():显示当前的年、月、日、时、分、秒
getTime():获取当前date对象对应的毫秒数,(时间戳)
3.java.sql.Date对应着数据库中的日期类型的变量
*/
@Test
public void test(){
//构造器一:Date():创建了一个对应当前时间的Date对象
Date date1 = new Date();
System.out.println(date1.toString());
System.out.println(date1.getTime());//1655192749803
System.out.println("=====================");
//构造器二:创建指定毫秒数的Date对象
Date date = new Date(1655192749803L);
System.out.println(date);
System.out.println("=====================");
//创建Java.sql.Date对象
java.sql.Date date2 = new java.sql.Date(1655192749803L);
System.out.println(date2);
System.out.println("=====================");
//如何将Java.util.Date对象转换为Java.sql.Date对象
//情况一:多态
Date date3 = new java.sql.Date(1655192749803L);
java.sql.Date date4 = (java.sql.Date)date3;
//情况二:
Date date5 = new Date();
java.sql.Date date6 = new java.sql.Date(date5.getTime());
}

运行结果图

三、Calendar类

1.实例化

方式一:创建其子类(GregorianCalendar)的对象

方式二:调用其静态方法getInstance()

点击查看代码
 @Test
public void test(){
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getClass());//查看对象是由哪个类造的
//常用方法
//get()
int days = calendar.get(Calendar.DAY_OF_MONTH);//获取今天是这个月的第几天
System.out.println(days);
int days1 = calendar.get(Calendar.DAY_OF_YEAR);//获取今天是这一年的第几天
System.out.println(days1);
//set()
System.out.println("=============");
calendar.set(Calendar.DAY_OF_MONTH,22);
days = calendar.get(Calendar.DAY_OF_MONTH);//获取设置的日期是这个月的第几天
System.out.println(days);
//add()
System.out.println("=============");
calendar.add(Calendar.DAY_OF_MONTH,3);//想要再此日期上减去3天只需要写成-3即可
days = calendar.get(Calendar.DAY_OF_MONTH);//获取当前日期是这个月的第几天,然后在此基础上加上3天
System.out.println(days);
//getTime():日历类---->Date
System.out.println("=============");
Date date = calendar.getTime();
System.out.println(date);
//setTime():Date--->日期类
System.out.println("=============");
Date date1 = new Date();//获取当前Date
calendar.setTime(date1);//将Date转化为日期类
days = calendar.get(Calendar.DAY_OF_YEAR);//获取该日期是这一年的第几天
System.out.println(days); }

运行结果图

注意事项:

获取月份时:一月是0,二月是1,依次类推12月是11

获取星期时:周日是1,周一是2,依次类推周六是7

四、SimpleDateFormat类

点击查看代码
    /*
SimpleDateFormat对日期Date类的格式化和解析
1.两个操作
1.1格式化:日期--->字符串
1.2解析:格式化的逆过程,字符串--->日期
*/
@Test
public void test4() throws ParseException {
//实例化SimpleDateFormat:使用默认的构造器
SimpleDateFormat sdf = new SimpleDateFormat();
//格式化:日期--->字符串
Date date = new Date();
System.out.println(date);
String format = sdf.format(date);
System.out.println(format);
//解析:格式化的逆过程,字符串--->日期
String str = "2022/6/15 下午4:10";//默认格式
Date date1 = sdf.parse(str);
System.out.println(date1);
System.out.println("=================");
//格式化与解析方式二:按照指定的方式进行格式化和解析:调用代参的构造器
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String format1 = sdf1.format(date);
System.out.println(format1);
//解析
Date parse = sdf1.parse("2022-06-15 04:20:53");//必须按照给定的格式,否则会抛异常
System.out.println(parse);
}

运行结果图



1.练习题:字符串"2022-6-15",转换为Java.sql.Date

点击查看代码
    @Test
public void test5() throws ParseException {
String birth = "2022-6-15";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date parse = sdf1.parse(birth);
java.sql.Date date = new java.sql.Date(parse.getTime());
System.out.println(date);
}

运行结果图



2.练习题:三天打鱼两天晒网,输入两个日期,从第一个日期开始,到第二个日期是请问这天实在打鱼还是在晒网

若在测试单元@Test中无法使用Scanner输入可以参考以下解决方法;

(1)打开idea------找到help-------点击Edit Custom VM Options

(2)在最后添加:-Deditable.java.test.console=true

(3)保存,重新打开idea。

点击查看代码
 @Test
public void test6() throws ParseException {
//总天数的计算
//这里在Test测试单元里无法使用Scanner,也就是无法输入日期可参考上图解决方法
Scanner input = new Scanner(System.in);
String s = input.nextLine();
String s1 = input.nextLine(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse(s);
Date date2 = sdf1.parse(s1);
int totalDay = (int) ((date2.getTime() -date1.getTime()) /(1000 * 60 * 60 *24) + 1);
System.out.println("从1999-04-06到2022-06-15一共有"+ totalDay+"天");
if(totalDay % 5 == 1 || totalDay % 5 == 2 || totalDay % 5 == 3)
System.out.println("这一天在打鱼");
else
System.out.println("这一天在晒网");
}

运行结果图

常用类-jdk8之前的日期和API的更多相关文章

  1. JDK8 新增的日期时间API

    背景 JDK8中增加了一套全新的日期时间API,这里进行总结下,方便查询使用. 新的时间及日期API位于 java.time 包中,下面是一些关键类. Instant:代表的是时间戳. LocalDa ...

  2. Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate

    通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用ja ...

  3. Java常用类(I)-时间和日期

    java开发中,常涉及到时间的处理,这里就做一个总结,同样也是一个笔记. 相关类及概念 1. java.util.Date:表示特定的瞬间,精确到毫秒.由于API 不易于实现国际化,日期和时间字段之间 ...

  4. JDK8中新日期时间API

    它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的.偏移性:Date中的年份是从1900开始的,而月份都从0开始.格式化:格式化只对Date有用,Calendar则不行.此外,它们也不是线程 ...

  5. Java常用类之时间类

    JDK8之前日期时间API 1. java.lang.System类 2. java.util.Date类 3. java.text.SimpleDateFormat类 4. java.util.Ca ...

  6. Java 常用类-程序员头大的日期时间API

    第二节.日期时间API 一.JDK8之前日期时间API 1.1 java.lang.System类 System类提供的public static long currentTimeMillis()用来 ...

  7. java 数据结构(三):java常用类 三 日期时间API

    JDK 8之前日期时间API 1.获取系统当前时间:System类中的currentTimeMillis()long time = System.currentTimeMillis();//返回当前时 ...

  8. Java(三)常用类

    @ 目录 Java常用类 一.字符串相关的类 1.String类 2.StringBuffer类 3.StringBuilder类 二.JDK8以前的日期时间API 1.java.lang.Syste ...

  9. Java常用类学习笔记总结

    Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...

随机推荐

  1. Java 语言实现简易版扫码登录

    基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...

  2. Linux-3作业练习

    1.自建yum仓库,分别为网络源和本地源 请移步: yum源配置 2.编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交. 请移步:http2.4编译安装       总结参照https ...

  3. 团队Arpha2

    队名:观光队 组长博客 作业博客 组员实践情况 王耀鑫 **过去两天完成了哪些任务 ** 文字/口头描述 完成服务器连接数据库部分代码 展示GitHub当日代码/文档签入记录 接下来的计划 服务器网络 ...

  4. Android添加布局和按键

    Android添加布局和按键 Android布局方式分为 1.LinearLayout (线性布局) 2.ConstraintLayout (约束布局) 3.FrameLayout (帧布局) 4.T ...

  5. kNN-预测

    现在进行第五步,对数据进行预测 那么要做的的是从数据集里面拿出一部分作为要预测的,剩下的去比较,书上使用的是10% # 对之前做好的kNN算法进行预测 # 首先获取之前构造好的kNN分类器.数据.规则 ...

  6. Mqtt入门:在线调试连接阿里云

    近期课设需要做个东西,我想要做个上位机更好的显示. 但是一开始学习一样东西,听没头绪的,不知道从哪里入手,尝试过去B站找视频看,但是感觉视频讲的都是基础的东西,不是说人家up主讲的不好,只是对于入门, ...

  7. GIT速查手册

    一.GIT 1.1 简单配置 git是版本控制系统,与svn不同的是git是分布式,svn是集中式 配置文件位置 # 配置文件 .git/config 当前仓库的配置文件 ~/.gitconfig 全 ...

  8. Mac远程windows工具

    现在很多小伙伴都是使用MAC系统,但在工作中或多或少会遇到需要远程windows的情况,今天给大家安利一款软件,让你轻轻松松远程windows Microsoft Remote Desktop Mic ...

  9. autohotkey(AHK)实现箭头映射

    起因 在主力本上使用了AHK实现alt ijkl的箭头映射,在另一个本子上怎么都不习惯,于是网上找教程,找了半天... 因为大家习惯了快捷键都不一样,为了避免以后浪费时间,因此开此文记录. 操作 ht ...

  10. “极简”创建 github page 并设置域名

    最简单最详细的,创建 github page 并设置域名,没有多余的步骤,并且多图,对新手特别友好 尝试用 github page 创建博客,并设置独立域名.网上找了许多教程,都太复杂.自己的创建过程 ...