Java八大常用类(五) 时间类

简介: Java八大常用类(五) 时间类常用类 4 Date类和DateFormat类我们把1970年1月1日00:00:00 定为基准时间Date类大部分方法已过时,不常用package oop2.date;/* Date中的三个类 sql包下的类 Date: 只含有年月日 Time: 只含有时分秒 Timestamp: 时间戳,既含有年月日,又含有时分秒 */import java.sql.Date;public class DateB { public static void main(String[] args) {

常用类 4 Date类和DateFormat类

我们把1970年1月1日00:00:00 定为基准时间

Date类

大部分方法已过时,不常用

package oop2.date;
/*
    Date中的三个类
    sql包下的类
    Date: 只含有年月日
    Time: 只含有时分秒
    Timestamp: 时间戳,既含有年月日,又含有时分秒
 */
import java.sql.Date;
public class DateB {
    public static void main(String[] args) {
        //只含有年月日 ,没有时分秒
        java.sql.Date date1 = new java.sql.Date(System.currentTimeMillis());
        System.out.println(date1);
        String d = "2019-9-10";
        Date date = Date.valueOf(d);
        System.out.println(date);      //字符串类型转化为Date类型
    }
}

DateFormat类

日期格式化的类

package oop2.date;
/*
    作用:格式化日期类
 */
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatA {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        System.out.println(date);
        //时间格式化
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");    // 也可以:  yyyy年MM月dd日 hh:mm:ss
    //    DateFormat dateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
        //调用格式方法
        String format = dateFormat.format(date);
    //    String format2 = dateFormat2.format(date);
        System.out.println(format);
    //    System.out.println(format2);
        System.out.println("===================  [B]  String类型转为Date类型  ====================================");
        String str = "2020-09-09 09:09:09";
        DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  //转的格式和string的格式要一致
        Date parse = dateFormat1.parse(str);
        System.out.println(parse);
    }
}

常用类 5 Calendar类(日历类)

在1.7 1.8还能用,到高版本也已经过时了。

package oop2.date;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class MyCalendar {
    public static void main(String[] args) {
        //创建日历类对象
        Calendar calendar = new GregorianCalendar();
        System.out.println(calendar);
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH));
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println(calendar.get(Calendar.HOUR));
        //可以对年月日进行修改实现
        calendar.set(Calendar.MONTH,6);
        System.out.println(calendar.get(Calendar.MONTH));
        int max = calendar.getMaximum(Calendar.DATE);    //获得本月中一共有多少天
        System.out.println(max);
        /*
            Calendar和Date 类可以相互转换
         */
        //把日期类对象转成日历类对象
        Date date = new Date();
        Calendar calendar1 = new GregorianCalendar();
        calendar1.setTime(date);
        //把日历类对象转化为日期类
        Date time = calendar1.getTime();
    }
}

常用类 6 JDK8的新日期类

引入了 java.time 包 。少用的。常用的还是Date和DateFormat类

package oop2.date;
import java.time.Instant;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
/**
 * JDK1.8中新增加的
 */
public class MyTimeA {
    public static void main(String[] args) {
        //Instant
        Instant now = Instant.now();
        System.out.println(now);
        System.out.println(now.MAX);
        System.out.println(now.MIN);
        System.out.println(now.EPOCH);
        //LocalDate    这个只含有年月日
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate);
        //DateTimeFormatter
        DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String format = localDate.format(dft);
        System.out.println(format);
        // String 类型转LocalDate
        LocalDate.parse("2029年09月10日",dft);
    }
}
相关文章
|
1天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
10 3
|
2天前
|
Java
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
【JAVA基础篇教学】第五篇:Java面向对象编程:类、对象、继承、多态
|
2天前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
|
3天前
|
Java 编译器 开发者
Java一分钟之-继承:复用与扩展类的特性
【5月更文挑战第9天】本文探讨了Java中的继承机制,通过实例展示了如何使用`extends`创建子类继承父类的属性和方法。文章列举了常见问题和易错点,如构造器调用、方法覆盖、访问权限和类型转换,并提供了解决方案。建议深入理解继承原理,谨慎设计类结构,利用抽象类和接口以提高代码复用和扩展性。正确应用继承能构建更清晰、灵活的代码结构,提升面向对象设计能力。
9 0
|
3天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
13 0
|
3天前
|
Java API 调度
【Java多线程】Thread类的基本用法
【Java多线程】Thread类的基本用法
6 0
|
3天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
9 0
|
4天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
26 1
|
5天前
|
Java 开发者
在Java中,接口和超类在多态性中扮演着重要的角色
Java中的接口和超类支持多态性,接口作为规范,允许多继承和回调机制;超类提供基类,实现代码重用和方法重写,两者共同促进代码的灵活性和可维护性。
26 10
|
5天前
|
Java
Java并发Futures和Callables类
Java程序`TestThread`演示了如何在多线程环境中使用`Futures`和`Callables`。它创建了一个单线程`ExecutorService`,然后提交两个`FactorialService`任务,分别计算10和20的阶乘。每个任务返回一个`Future`对象,通过`get`方法获取结果,该方法会阻塞直到计算完成。计算过程中模拟延迟以展示异步执行。最终,打印出10!和20!的结果。