一、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. Luffy /4/ 多方式登录接口&登录注册前端页面

    目录 Luffy /4/ 多方式登录接口&登录注册前端页面 腾讯云短信 登录注册前端页面 如何实现点击登录或图片进行跳转 登录注册前端页面实现 Login.vue Register.vue H ...

  2. oauth协议原理

    oauth协议关系图(如获取微信用户信息): oauth一般授权步骤:

  3. kvm 虚拟化技术 1.2 之配置网络桥接

    实验一:配置网路桥接模式 默认kvm的网络是NAT模式,一般生产环境用桥接模式,把虚拟机改成桥接模式 1.查看是否安装网桥设备 [root@kibana opt]# rpm -qa|grep brid ...

  4. 斯坦福NLP课程 | 第12讲 - NLP子词模型

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  5. c# DateTime 格式化输出字符串

    DateTime 输出字符串 带 T,结尾 +08:00 $"{DateTime.Now:O}"; // 2020-12-20T16:11:18.2353338+08:00 $&q ...

  6. 数仓选型必列入考虑的OLAP列式数据库ClickHouse(上)

    概述 定义 ClickHouse官网地址 https://clickhouse.com/ 最新版本22.4.5.9 ClickHouse官网文档地址 https://clickhouse.com/do ...

  7. 好客租房20-react组件介绍

    1react组件介绍 组件是react中的一等公民 组件表示页面中的部分功能 组合多个组件实现完整的页面功能 特点 可复用性 独立 可组合

  8. MongoDB 体系结构与数据模型

    每日一句 If no one else guards the world, then I will come forward. 如果没有别人保卫这个世界,那么我将挺身而出. 概述 MongoDB主要是 ...

  9. mongoDB 命令大全

    每日一句 There should be a better way to start a day than waking up every morning. 应该有更好的方式开始新一天, 而不是千篇一 ...

  10. 基于.NetCore开发博客项目 StarBlog - (10) 图片瀑布流

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...