返回顶部
首页 > 资讯 > 后端开发 > Python >JavaDate时间类型的操作实现
  • 161
分享到

JavaDate时间类型的操作实现

2024-04-02 19:04:59 161人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本文主要介绍Java Date 日期类型,以及Calendar的怎么获取时间,然后写成时间工具类里面有下面这些方法: - 时间转字符串(有默认时间格式,带时间格式)- 字符串转时间(

本文主要介绍Java Date 日期类型,以及Calendar的怎么获取时间,然后写成时间工具类里面有下面这些方法:

  • - 时间转字符串(有默认时间格式,带时间格式)
  • - 字符串转时间(有默认时间格式,带时间格式)
  • - 计算两个日期之间相差的天数
  • - 计算当前时间多少天以后的日期
  • - 判断是否是日期格式

代码

很多说明都注释在代码上:

package datedemo;
import java.text.SimpleDateFORMat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Pattern;

public class DateUtil {
    private final static String A="yyyy-MM-dd";//日期格式
    private final static String B="yyyy-MM-dd HH:mm:ss";//日期格式
    private final static String C="yyyy/MM/dd HH:mm:ss";//日期格式
    private final static String exp="((^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._])(10|12|0?[13578])([-\\/\\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._])(11|0?[469])([-\\/\\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\\d{2})|([2-9]\\d{3}))([-\\/\\._])(0?2)([-\\/\\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([3579][26]00)([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([1][89][0][48])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([2-9][0-9][0][48])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([1][89][2468][048])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([2-9][0-9][2468][048])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([1][89][13579][26])([-\\/\\._])(0?2)([-\\/\\._])(29)$)|(^([2-9][0-9][13579][26])([-\\/\\._])(0?2)([-\\/\\._])(29)$))";
    
    public static String getDateToString(Date date) throws Exception{
        String s;
        SimpleDateFormat sft=new SimpleDateFormat(A);//格式时间对象
        s=sft.format(date);
        return s;
    }

    
    public static String getDteToString (Date date,String format) throws Exception{
        String s;
        SimpleDateFormat sft=new SimpleDateFormat(format);//格式时间对象
        s=sft.format(date);
        return s;
    }

    
    public static Date getStringToDate(String text) throws Exception{
        SimpleDateFormat sdf = new SimpleDateFormat(A);//格式时间对象
        Date date = sdf.parse(text);
        return date;
    }

    
    public static Date gettringToDate(String text,String format) throws Exception{
        SimpleDateFormat sdf=new SimpleDateFormat(format);//格式时间对象
        Date date=sdf.parse(text);
        return date;
    }

    
    public static long getDaysBetweenTwoDates(Date a, Date b) throws Exception {
        //判断这两个时间的大小
        if(a.equals(b)) return 0;
        if(!a.before(b)){//保证返回的值为正数
            Date temp;
            temp=a;
            a=b;
            b=temp;
        }
        Calendar c = Calendar.getInstance();//获取calendar对像
        c.setTime(a);//设置时间 date  转 calendar 类型
        long t1 = c.getTimeInMillis();//获取时间戳
        c.setTime(b);
        long t2 = c.getTimeInMillis();
        //计算天数
        long days = (t2 - t1) / (24 * 60 * 60 * 1000);
        return days;
    }

    
    public static Date getNextDasByNumber(Date currentDate,int distance)throws Exception{
        Calendar calendar=Calendar.getInstance();//获取日历对象
        calendar.setTime(currentDate);//设置当前时间 date  转 calendar 类型
        calendar.add(Calendar.DATE,distance);//计算离当前时间以后的日期
        Date date=calendar.getTime();//calendar 转 date  类型
        return date;
    }

    
    public static boolean isDate(String date){
       // 创建 Pattern 对象 java正则表达式对象
        Pattern r = Pattern.compile(exp);
        boolean flag =  r.matcher(date).matches();//判断它格式是否正确
        return flag;
    }

    public static void main(String []arg){
        Calendar calendar=Calendar.getInstance();
        try {
            //验证计算两个日期之间相差的天数
            long i= getDaysBetweenTwoDates(getStringToDate("2017-02-11"),getStringToDate("2017-03-11"));
            System.out.println("计算(2017-02-11,2017-03-11)两个日期之间相差的天数:"+i);

            Date d= getNextDasByNumber(getStringToDate("2017-02-11"),28);
            System.out.println("计算(2017-02-11)时间128天以后的日期:"+getDateToString(d));
            boolean f= isDate("2017-02-11");
            System.out.println("判断2017-02-11日期格式是否正确:"+f);
            boolean f1= isDate("20170211");//正则表达式不支持这种
            System.out.println("判断20170211日期格式是否正确:"+f1);
            boolean f2= isDate("2017/02/11");
            System.out.println("判断2017/02/11日期格式是否正确:"+f2);
            System.out.println();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

结果

总结

Calendar比Java原有的Date更加强大些,它们之间也可以相互转换 ,不过用Calendar,小心获取月份时,它是阴历–得加一才是我们正常的月份;
就说这么多了,都是干货哈!!!,大家有不明白的或者有新的需求都可提出来,一起讨论讨论;

到此这篇关于Java Date时间类型的操作实现的文章就介绍到这了,更多相关Java Date类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaDate时间类型的操作实现

本文链接: https://lsjlt.com/news/142236.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaDate时间类型的操作实现
    本文主要介绍Java Date 日期类型,以及Calendar的怎么获取时间,然后写成时间工具类里面有下面这些方法: - 时间转字符串(有默认时间格式,带时间格式)- 字符串转时间(...
    99+
    2024-04-02
  • python 包实现 time 时间管理操作
    目录一、当前时间戳二、获取当前时间字符串三、获取当前计算机时间格式四、格式化时间显示五、字符串转为计算机格式六、精确时间计数值七、休眠等待一、当前时间戳 获取当前时间戳,即当前系统内...
    99+
    2024-04-02
  • MySQL中的时间类型
    时间是一类重要的数据,MySQL中有多种关于时间的类型可以选择。这篇文章主要介绍MySQL中的时间类型,主要参考MySQL文档:https://dev.mysql.com/doc/refman/8.0...
    99+
    2023-10-27
    mysql 数据库 java
  • mysql 中怎么实现时间处理操作
    这篇文章将为大家详细讲解有关mysql 中怎么实现时间处理操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.存储日期时间用now(); &nb...
    99+
    2024-04-02
  • Linux中怎么实现时间转化操作
    这篇文章将为大家详细讲解有关Linux中怎么实现时间转化操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linux时间转化方法:(1)date -d"2008年 12月 17日 ...
    99+
    2023-06-16
  • MySQL数据类型--------日期与时间类型实战
    1. 背景  * MySQL支持多种表示日期和时间的数据类型,如YEAR、TIME、DATETIME、TIMESTAMP等等……   * MySQL 5.6.4版本开始支持微秒...
    99+
    2024-04-02
  • Pandas时间类型转换与处理的实现示例
    目录案例1案例2案例3案例4补充知识案例5案例6案例7案例8案例9案例10在平时的需求开发中,经常涉及到利用Pandas处理日期相关类型字段的转换和操作,为此特地记录以下练习案例,帮...
    99+
    2024-04-02
  • 「Flink」Flink中的时间类型
    Flink中的时间类型和窗口是非常重要概念,是学习Flink必须要掌握的两个知识点。Flink中的时间类型时间类型介绍Flink流式处理中支持不同类型的时间。分为以下几种:处理时间Flink程序执行对应操作的系统时间。所有基于时间...
    99+
    2016-05-10
    「Flink」Flink中的时间类型
  • MySQL 时间类型的选择
    目录DATETIMETIMESTAMP如何选择如何存储毫秒级时间结语MySQL 提供了 DATETIME 和 TIMESTAMP 两种非常相似的类型处理日期和时间,大部分情况下两种都是 OK 的,但是有些情况二者会互...
    99+
    2022-05-29
    MySQL 时间类型 MySQL 时间类型选择
  • Linux中怎么实现日期和时间操作
    这篇文章给大家介绍Linux中怎么实现日期和时间操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。如何查看系统的日期和时间 $ date Tue Oct 16 11:18:32 CST 2012 date支持格式化输出...
    99+
    2023-06-13
  • Python实现操作Redis所有类型的方法详解
    目录Redis的数据类型字符串(String)哈希(Hash)列表(List)集合(Set)有序集合(Sorted Set)Redis的高级用法事务发布订阅当今互联网时代,数据处理已经成为了一个非常重要的任务。而Redi...
    99+
    2023-04-19
    Python操作Redis所有类型 Python操作Redis Python Redis
  • golang值类型转换成[]uint8类型的操作
    在go语言中,byte其实是uint8的别名,byte 和 uint8 之间可以直接进行互转。 目前来只能将0~255范围的int转成byte。 func Int64ToByte...
    99+
    2024-04-02
  • mysql varchar类型求和实例操作
    有的小伙伴在学习数据库的时候,创建表结构的时候不小心把某字段设置成了varchar但是在统计求和的时候就傻眼了,接下来跟着小编学习一下,不用改该列数据类型也能求和的方法吧! 1、打开 数据库连接客户端Nav...
    99+
    2024-04-02
  • 详解jdbc实现对CLOB和BLOB数据类型的操作
    详解jdbc实现对CLOB和BLOB数据类型的操作1、 读取操作CLOB //获得数据库连接 Connection con = ConnectionFactory.getConnection(); con.se...
    99+
    2023-05-31
    jdbc clob blob
  • 如何使用Java时间操作类库Joda-Time
    本篇内容主要讲解“如何使用Java时间操作类库Joda-Time”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Java时间操作类库Joda-Time”吧...
    99+
    2024-04-02
  • Java中Date类如何设置与操作时间
    这篇文章将为大家详细讲解有关Java中Date类如何设置与操作时间,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Date顾名思义,Date就是关于时间的一个类,这个类主要就是一些对时间的设置以及操作,查阅...
    99+
    2023-06-29
  • 【JAVA】有关时间的操作在编程中如何实现?
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言Date 类Date 类方法Data的缺陷实例获取当前日期时间日期比较java中设置date数据的显示格式 前言 在许多应...
    99+
    2023-08-16
    java 开发语言
  • django模型查询操作的实现
    目录1、创建对象2、保存ForeignKey和ManyToManyField字段3、检索对象跨越多值的关系查询使用F表达式引用模型的字段:4、缓存和查询集5、使用Q对象进行复杂查询6...
    99+
    2024-04-02
  • mysql 实现添加时间自动添加更新时间自动更新操作
    在数据库使用中经常使用到时间字段。常用的有创建时间和更新时间。 然而在使用中想要创建时间在创建的时候自动设置为当前时间,更新时间在更新时自动更新为当前时间。 创建表 stu CREATE TABLE `stu` ...
    99+
    2022-05-27
    mysql 添加时间 时间自动更新
  • Mysql 设置boolean类型的操作
    Mysql 设置boolean类型 1.tinyint类型 我们创建test表,并设置其bl字段为boolean类型 create table test( id int PRIMARY key, status...
    99+
    2022-05-23
    Mysql 设置boolean类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作