返回顶部
首页 > 资讯 > 后端开发 > Python >Java 进行时间处理的步骤
  • 166
分享到

Java 进行时间处理的步骤

2024-04-02 19:04:59 166人浏览 安东尼

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

摘要

目录一、Calendar (1)、Calender介绍 (2)、简单的日期使用(3)、与Date之间的转换二、Apache下的DateUtils 三、jdk1.8新增的日期api L

一、Calendar

(1)、Calender介绍

Calendar的中文翻译是日历,实际上,在历史上有着许多种计时的方法。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是"GreGorian Calendar"。也就是我们在讲述年份时常用"公元**年"。Calendar 在 Java 中是一个抽象类(Abstract Class),GregorianCalendar 是它的一个具体实现。Calendar.getInstance()中所获得的实例就是一个"GreogrianCalendar"对象。

(2)、简单的日期使用


Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.DATE));//-----------------------今天是几号
System.out.println(cal.get(Calendar.DAY_OF_MONTH));//---------------今天是一月的第几天
System.out.println(cal.get(Calendar.DAY_OF_WEEK));//----------------从星期天开始计算,如果今天星期二,那么返回3
System.out.println( cal.get(Calendar.DAY_OF_YEAR));//----------------今天是一年的第几天
System.out.println( cal.get(Calendar.HOUR));//-----------------------现在是几点     12小时制
System.out.println( cal.get(Calendar.HOUR_OF_DAY));//----------------现在是几点     24小时制,一般使用这个属性赋值
System.out.println(cal.get(Calendar.MILLISECOND));//----------------现在的毫秒
System.out.println( cal.get(Calendar.MINUTE));//---------------------现在是几分
System.out.println( cal.get(Calendar.SECOND));//---------------------现在是几秒
System.out.println(cal.get(Calendar.WEEK_OF_MONTH));//--------------现在是一个月中的第几周
System.out.println(cal.get(Calendar.WEEK_OF_YEAR));//----------------现在是一个年中的第几周
System.out.println(cal.get(Calendar.MONTH));//-----------------------月份获取需要 +1,那么,赋值时需要 -1

System.out.println(cal.get(Calendar.MONTH)-1);     //即可获得上个月的月份

(3)、与Date之间的转换


Calendar calendar = Calendar.getInstance();
// 从一个Calendar 对象中获取 Date 对象

Date date = calendar.getTime();

// 将 Date 对象反应到一个 Calendar 对象中,
// 先获得一个实例,然后设置 Date 对象
calendar.setTime(date);

月份的起始值为0而不是1,所以要设置八月时,我们用7而不是8。
calendar.set(Calendar.MONTH, 7);

计算2000-01-01是星期几

calendar.set(2000,1,1)

calendar.get(calendar.DAY_OF_WEEK )

当然Calender是最早的时间处理,是jdk1.6的东西难免比较过时

二、Apache下的DateUtils

(1)、引入包


<dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
       <version>3.9</version>
</dependency>

(2)、没什么可说的上翻译就行


    
    public static final long MILLIS_PER_SECOND = 1000
    
    public static final long MILLIS_PER_MINUTE = 60 * MILLIS_PER_SECOND
    
    public static final long MILLIS_PER_HOUR = 60 * MILLIS_PER_MINUTE
    
    public static final long MILLIS_PER_DAY = 24 * MILLIS_PER_HOUR
    
    public static final int SEMI_MONTH = 1001
    
    public static final int RANGE_WEEK_SUNDAY = 1
    
    public static final int RANGE_WEEK_MONDAY = 2
    
    public static final int RANGE_WEEK_RELATIVE = 3
    
    public static final int RANGE_WEEK_CENTER = 4
     
    public static final int RANGE_MONTH_SUNDAY = 5
    
    public static final int RANGE_MONTH_MONDAY = 6
     
    public DateUtils()
    
    public static boolean isSameDay(final Date date1, final Date date2)
    
    public static boolean isSameDay(final Calendar cal1, final Calendar cal2)
    
    public static boolean isSameInstant(final Date date1, final Date date2)
    
    public static boolean isSameInstant(final Calendar cal1, final Calendar cal2)
    
    public static boolean isSameLocalTime(final Calendar cal1, final Calendar cal2)
    
    public static Date parseDate(final String str, final String... parsePatterns) throws ParseException
    
    public static Date parseDate(final String str, final Locale locale, final String... parsePatterns) throws ParseException
    
    public static Date parseDateStrictly(final String str, final String... parsePatterns) throws ParseException
    
    public static Date parseDateStrictly(final String str, final Locale locale, final String... parsePatterns) throws ParseException
    
    public static Date addYears(final Date date, final int amount)
    
    public static Date addMonths(final Date date, final int amount)
    
    public static Date addWeeks(final Date date, final int amount)
    
    public static Date aDDDays(final Date date, final int amount)
    
    public static Date addHours(final Date date, final int amount)
    
    public static Date addMinutes(final Date date, final int amount)
    
    public static Date addSeconds(final Date date, final int amount)
    
    public static Date addMilliseconds(final Date date, final int amount)
     
    public static Date setYears(final Date date, final int amount)
     
    public static Date setMonths(final Date date, final int amount)
    
    public static Date setDays(final Date date, final int amount)
    
    public static Date setHours(final Date date, final int amount)
     
    public static Date setMinutes(final Date date, final int amount)
    
    public static Date setSeconds(final Date date, final int amount)
    
    public static Date setMilliseconds(final Date date, final int amount)
    
    public static Calendar toCalendar(final Date date)
    
    public static Date round(final Date date, final int field)
    
    public static Calendar round(final Calendar date, final int field)
    
    public static Date round(final Object date, final int field)
    
    public static Date truncate(final Date date, final int field)
     
    public static Calendar truncate(final Calendar date, final int field)
    
    public static Date truncate(final Object date, final int field)
    
    public static Date ceiling(final Date date, final int field)
    
    public static Calendar ceiling(final Calendar date, final int field)
    
    public static Date ceiling(final Object date, final int field)
    
    public static Iterator<Calendar> iterator(final Date focus, final int rangeStyle)
    
    public static Iterator<Calendar> iterator(final Calendar focus, final int rangeStyle)
    
    public static Iterator<?> iterator(final Object focus, final int rangeStyle)
 

  public static long getFragmentInMilliseconds(final Calendar calendar, final int fragment)
    
    public static long getFragmentInSeconds(final Calendar calendar, final int fragment)
    
    public static long getFragmentInMinutes(final Calendar calendar, final int fragment)
    
    public static long getFragmentInHours(final Calendar calendar, final int fragment)
    
    public static long getFragmentInDays(final Calendar calendar, final int fragment)
    
    public static boolean truncatedEquals(final Calendar cal1, final Calendar cal2, final int field)
    
    public static boolean truncatedEquals(final Date date1, final Date date2, final int field)
    
    public static int truncatedCompareTo(final Calendar cal1, final Calendar cal2, final int field)
    
    public static int truncatedCompareTo(final Date date1, final Date date2, final int field)
	
	
	//简单举例
	System.out.println(DateUtils.addDays(new Date(), 1));//-----------------当前日期。天数加1如果想建议填负数即可
    System.out.println(DateUtils.addHours(new Date(), 0));//----------------当前日期
    Date date = DateUtils.addDays(new Date(), 1);

DateUtils返回的就是Date不需要转换,当然也是很早的东西了,只是诞生在Calender基础之上而已

三、JDK1.8新增的日期API LocalDate | LocalTime | LocalDateTime

新的日期API都是不可变的,更使用于多线程的使用环境中(从默认时区的系统时钟获取当前的日期时间。不用考虑时区差)
优点:

1、之前使用的java.util.Date月份从0开始,我们一般会+1使用,很不方便,java.time.LocalDate月份和星期都改成了enum

2、java.util.Date和SimpleDateFORMat都不是线程安全的,而LocalDate和LocalTime和最基本的String一样,是不变类型,不但线程安全,而且不能修改。

3、java.util.Date是一个“万能接口”,它包含日期、时间,还有毫秒数,更加明确需求取舍

4、新接口更好用的原因是考虑到了日期时间的操作,经常发生往前推或往后推几天的情况。用java.util.Date配合Calendar要写好多代码,而且一般的开发人员还不一定能写对。

(1)、LocalDateTime(年月日时分秒)


LocalDateTime date = LocalDateTime.now();
        //2021-03-26T10:24:14.009784900
        System.out.println(date);

		//获取年月日时分秒操作
        System.out.println(date.getYear());
        System.out.println(date.getMonthValue());
        System.out.println(date.getDayOfMonth());
        System.out.println(date.getHour());
        System.out.println(date.getMinute());
        System.out.println(date.getSecond());
        System.out.println(date.getNano());
		
		//当然你也可以获取最近任意的一段时间
		 System.out.println(date.getSecond()+1);           ||        System.out.println(date.getSecond()-1);
		

        // 手动创建一个LocalDateTime实例
        LocalDateTime date2 = LocalDateTime.of(2017, 12, 17, 9, 31, 31, 31);
        System.out.println(date2);
        // 进行加操作,得到新的日期实例
        LocalDateTime date3 = date2.plusDays(12);
        System.out.println(date3);
        // 进行减操作,得到新的日期实例
        LocalDateTime date4 = date3.minusYears(2);
        System.out.println(date4);
		
		isAfter()判断一个日期是否在指定日期之后  返回boolean 类型
		System.out.println(localDateTime.isBefore(LocalDateTime.now()));//---------返回false
		
		isBefore()判断一个日期是否在指定日期之前   返回boolean 类型
		System.out.println(localDateTime.isAfter(LocalDateTime.now()));//---------返回false
	
		isLeapYear()判断是否是闰年(这个是LocalDate类中的方法)  返回boolean类型
		System.out.println(localDateTime.isEqual(LocalDateTime.now()));//---------返回true

(2)、LocalDateTime与Date之间的转换

Date to LocalDateTime


Date todayDate = new Date();

LocalDateTime ldt = Instant.ofEpochMilli( todayDate.getTime() )
        .atZone( ZoneId.systemDefault() )
        .toLocalDateTime();

System.out.println(ldt);

LocalDateTime to Date


LocalDateTime localDateTime = LocalDateTime.now();

Date date = Date.from( localDateTime.atZone( ZoneId.systemDefault()).toInstant());

System.out.println(date);

当然还有很多好玩的东西,LocalDate(年月日) LocalTime(时分秒)和LocalDateTime(年月日时分秒)都大差不差,所以讲一个即可

四、Hutool(Java工具类库)

一个比较好玩的Java工具类库,包含很多好玩的工具类,简单便捷。

(1)、安装

Maven


<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.6.1</version>
</dependency>

Gradle


compile 'cn.hutool:hutool-all:5.6.1'

Maven中央仓库
Hutool 5.x支持JDK8+,对Android平台没有测试,不能保证所有工具类或工具方法可用。 如果你的项目使用JDK7,请使用Hutool 4.x版本

(2)、使用


	//该工具类时间都是格式化好的
	System.out.println(DateUtil.now());//------------------------------取当前时间
	
	这也没啥好说的下载源码看中文注释即可,就不一一举例了,,,简简单单。

总结

总之好玩的工具类一大坨,不管是jdk原生还是别人封装的工具类,如果你想也可以自己通过jdk1.8的日期api自己封装属于自己的日期工具类,网上的日期工具类太多了,不要重复造轮子~~~~~~~~~~今天也是元气满满的一天

以上就是Java 进行时间处理的步骤的详细内容,更多关于Java 时间处理的资料请关注编程网其它相关文章!

--结束END--

本文标题: Java 进行时间处理的步骤

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

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

猜你喜欢
  • Java 进行时间处理的步骤
    目录一、Calendar (1)、Calender介绍 (2)、简单的日期使用(3)、与Date之间的转换二、Apache下的DateUtils 三、JDK1.8新增的日期API L...
    99+
    2024-04-02
  • 怎么进行python日期时间处理
    这篇文章给大家介绍怎么进行python日期时间处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。开发中常用的日期操作还有哪些?时区转换显示日期格式化秒数 与 日期 与 字符串的转换我们经常会用到,比如全球化的业务根据不...
    99+
    2023-06-22
  • python如何对日期时间进行处理
    这篇文章给大家分享的是有关python如何对日期时间进行处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发中常用的日期操作有哪些?获取当前时间获取系统秒数(从纪元时间开始)日期跟秒数之间转换获取日历等日期格式...
    99+
    2023-06-22
  • 如何进行Pandas库中时间序列的处理
    这期内容当中小编将会给大家带来有关如何进行Pandas库中时间序列的处理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在使用Python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与...
    99+
    2023-06-02
  • 如何使用ntpdate进行时间同步
    这篇文章主要为大家展示了“如何使用ntpdate进行时间同步”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用ntpdate进行时间同步”这篇文章吧。Linux服务器运行久时,系统时间就会存...
    99+
    2023-06-27
  • java事务处理的步骤是什么
    在Java中进行事务处理通常包括以下步骤: 获取数据库连接:首先需要建立与数据库的连接,通常使用JDBC或者ORM框架来获取数据...
    99+
    2024-03-07
    java
  • 域名进行备案的步骤
    本篇内容介绍了“域名进行备案的步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、备案前要准备的证件:企业法人营业执照或者组织机构代码证,...
    99+
    2023-06-06
  • java事件处理步骤是什么
    什么是事件?用户对组件的一个操作,称之为一个事件。事件源:能够产生事件的GUI组件对象。事件处理方法:能够接受,解析和处理事件类对象,实现与用户交互功能的方法。 事件监听器:可以处理事件的一个类。处理事件步骤:假设事件为XXXX向事件源注册...
    99+
    2015-07-22
    java教程 java 事件处理 步骤
  • 利用Java怎么将时间与时间戳进行转换
    本篇文章给大家分享的是有关利用Java怎么将时间与时间戳进行转换,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。时间戳(timestamp),一个能表示一份数据在某个特定时间之前...
    99+
    2023-05-31
    java 时间戳 ava
  • 用pycharm进行python爬虫的步骤
    使用 pycharm 进行 python 爬虫的步骤:下载并安装 pycharm。创建一个新项目。安装 requests 和 beautifulsoup 库。编写爬虫脚本,包括获取页面内...
    99+
    2024-04-25
    python pycharm
  • Linux中怎么使用ntpdate进行时间同步
    这篇文章主要介绍“Linux中怎么使用ntpdate进行时间同步”,在日常操作中,相信很多人在Linux中怎么使用ntpdate进行时间同步问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中怎么使用n...
    99+
    2023-06-27
  • Linux中怎么使用Chrony进行时间同步
    这篇文章主要介绍了Linux中怎么使用Chrony进行时间同步的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中怎么使用Chrony进行时间同步文章都会有所收获,下面我们一起来看看吧。Chrony简介:...
    99+
    2023-06-28
  • Linux在命令行下进行时间管理的方式
    本篇内容主要讲解“Linux在命令行下进行时间管理的方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux在命令行下进行时间管理的方式”吧!1.简单纯文本最直接管理你的待办事项的方式就是用...
    99+
    2023-06-05
  • Java 使用openoffice进行word转换为pdf的方法步骤
    一、下载openoffice第三方工具 建议下载4.1.6版本 http://www.openoffice.org/download/index.html 二、开启openoffi...
    99+
    2024-04-02
  • Java怎么与Unix时间戳进行转换
    今天就跟大家聊聊有关Java怎么与Unix时间戳进行转换,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。方法实现    public ...
    99+
    2023-05-30
    java unix 时间戳
  • 怎么在Ubuntu中使用NTP进行时间同步
    这篇文章主要介绍怎么在Ubuntu中使用NTP进行时间同步,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!NTP 是通过网络来同步时间的一种 TCP/IP 协议。通常客户端向服务器请求当前的时间,并根据结果来设置其时钟...
    99+
    2023-06-16
  • 详解PHP中美国时间转中国时间的实现步骤
    PHP是一种常用的程序设计语言,用于开发Web应用程序。在开发Web应用程序的过程中,可能涉及到不同时区时间的转换,比如将美国时间转换为中国时间。本文将详细介绍如何使用PHP实现将美国...
    99+
    2024-04-02
  • java程序运行的三个步骤
    Java程序运行的三个步骤:编写Java代码,更改扩展名为.java;通过javac命令对该java文件进行编译, 生成为.class文件;通过java命令对生成的class文件进行运行。如图:源程序的编写和保存java程序的编译推荐教程:...
    99+
    2015-02-04
    java入门 java 程序 步骤
  • java中怎么进行事务的处理
    在Java中进行事务处理有多种方式,主要有以下几种方式:1. 编程式事务管理:在代码中显式地使用事务管理器来开启、提交或回滚事务。可...
    99+
    2023-08-23
    java
  • 如何在Ubuntu中利用NTP对时间进行同步
    本篇文章给大家分享的是有关如何在Ubuntu中利用NTP对时间进行同步,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。NTP 是通过网络来同步时间的一种 TCP/IP 协议。通常...
    99+
    2023-06-07
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作