java 日期操作工具类_java8操作日期的工具类

java8操作日期的工具类

一、方法概览

该包的API提供了大量相关的方法,这些方法一般有一致的方法前缀:

of:静态工厂方法。

parse:静态工厂方法,关注于解析。

get:获取某些东西的值。

is:检查某些东西的是否是true。

with:不可变的setter等价物。

plus:加一些量到某个对象。

minus:从某个对象减去一些量。

to:转换到另一个类型。

at:把这个对象与另一个对象组合起来,例如: date.atTime(time)。

二、方法使用

package com.wuxin.utils;

import java.time.LocalDate;

import java.time.LocalDateTime;

import java.time.LocalTime;

import java.time.Period;

import java.time.ZoneOffset;

import java.time.format.DateTimeFormatter;

import java.time.temporal.IsoFields;

import java.util.Date;

/**

* jdk8的时间工具类

* @author wuxin

*

*/

public class Java8DateUtil {

private static final DateTimeFormatter DATE_PATTERN = DateTimeFormatter.ofPattern("yyyy-MM-dd");

private static final DateTimeFormatter TIME_PATTERN = DateTimeFormatter.ofPattern("HH:mm:ss");

private static final DateTimeFormatter DATE_TIME_PATTERN = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

/**

* 将date类型转换成LocalDateTime

* @param date

* @return

*/

public static LocalDateTime dateConvertToLocalDateTime(Date date) {

return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();

}

/**

* 将localDateTime类型转换成date类型

* @param localDateTime

* @return

*/

public static Date localDateTimeConvertToDate(LocalDateTime localDateTime) {

return Date.from(localDateTime.toInstant(ZoneOffset.of("+8")));

}

/**

* 获取当前时间的秒值

* @return

*/

public static long getSecond() {

return LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));

}

/**

* 获取当前时间的毫秒值

* @return

*/

public static long getMilliSecond() {

return LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

}

/**

* 获取两个时间的Period(改参数可以取出相差的年月日)

* @param year

* @param month

* @param day

* @return

*/

public static Period getPeriodBetweenTwoDate(int startYear,int startMonth,int startDay) {

LocalDate start = LocalDate.of(startYear, startMonth , startDay);

LocalDate end = LocalDate.now();

Period between = Period.between(start, end);

return between;

}

/**

* 解析yyyy-MM-dd格式的字符串,不含时分秒

* @param date

* @return

*/

public static LocalDate parseDate(String date) {

return LocalDate.parse(date, DATE_PATTERN);

}

/**

* 转换成yyyy-MM-dd格式的字符串

* @param date

* @return

*/

public static String formatDate(LocalDate date) {

return date.format(DATE_PATTERN);

}

/**

* 解析HH:mm:ss格式的字符串,不含年月日

* @param time

* @return

*/

public static LocalTime parseTime(String time) {

return LocalTime.parse(time, TIME_PATTERN);

}

/**

* 转换成HH:mm:ss格式的字符串

* @param time

* @return

*/

public static String formatDate(LocalTime time) {

return time.format(TIME_PATTERN);

}

/**

* 解析yyyy-MM-dd HH:mm:ss格式的字符串

* @param dateTime

* @return

*/

public static LocalDateTime parseDateTime(String dateTime) {

return LocalDateTime.parse(dateTime, DATE_TIME_PATTERN);

}

/**

* 转换成yyyy-MM-dd HH:mm:ss格式的字符串

* @param dateTime

* @return

*/

public static String formatDate(LocalDateTime dateTime) {

return dateTime.format(DATE_TIME_PATTERN);

}

/**

* 获取时间在第几周

* @param dateTime

* @return

*/

public static int getWeekOfYear(LocalDateTime dateTime) {

return dateTime.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530550.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql拦截器实现crud_Mybatis自定义SQL拦截器

本博客介绍的是继承Mybatis提供的Interface接口,自定义拦截器,然后将项目中的sql拦截一下,打印到控制台。先自定义一个拦截器package com.muses.taoshop.common.core.database.config;import org.apache.commons.lang3.StringUtils;import or…

python 桌面提醒_使用Python获取桌面通知

开发一款可提醒您诸如警报或待办事项清单等计划的应用程序真是太好了。在本文中,我将引导您逐步编写如何使用Python获取桌面通知的程序。桌面通知应用程序如何工作?您今天将要学习开发的桌面通知应用程序的主要目的是不断提醒我们我们一天中需要完成的不…

java线程同步的实现_【Java多线程系列三】实现线程同步的方法

packagecom.concurrent.test;importjava.util.Stack;importjava.util.concurrent.ArrayBlockingQueue;importjava.util.concurrent.BlockingQueue;importjava.util.concurrent.locks.Condition;importjava.util.concurrent.locks.ReentrantLock;/*** Description: 三种方法实现…

python建立py文件夹过程_Pycharm创建python文件自动添加日期作者等信息(步骤详解)...

百度AI接口的调用方法不必多介绍。官网地址 人流量统计新建AipBodyAnalysisfrom aip import AipBodyAnalysis""" 你的 APPID AK SK """APP_ID 你的 App IDAPI_KEY 你2021-02-03 14:24:01本文主要介绍了在python3.9下如何安装scrapy的方法&…

python父亲节祝福_父亲节祝福语精选简短 父亲节祝福语简短独特

1.您的坚忍不拔和铮铮硬骨是我的榜样,我从您那儿汲取到奋发的力量,走过挫折,迈向成功,爸爸,您是我永远的榜样,我爱您!祝您节日快乐!2.您的怀抱,是我的小天地;…

redis java应用_redis在JAVA的简单应用

reids是一个高性能的key-value数据库。它存储的value支持各种类型的数据,如String,List,set,hash类型。在此基础上,各种不同方式的排序。本文不具体争对redis数据库的各种命令,而是在Java实现简单的调用。1. //初始化R…

java安装 hello_安装JAVA步骤,并编写HELLOWORLD程序

安装Java步骤,并编写helloworld程序1.安装JDK(Java Development Kit)JDK是Java开发工具包(Java Development Kit)的缩写。它是一种用于构建在J Java 平台上发布的应用程序、applet和组件的开发环境。即编写Java程序必须有JDK,它提供了编译Java和运行Java…

java实现Fmeasure计算_聚类结果的评估指标及其JAVA实现

一. 前言又GET了一项技能。在做聚类算法的时候,由于要评估所提出的聚类算法的好坏,于是需要与一些已知的算法对比,或者用一些人工标注的标签来比较,于是用到了聚类结果的评估指标。我了解了以下几项。TP:是指被聚在一类的两个量被…

java随机产生坐标点_刚学JAVA不久,问一下怎么把这个程序实现随机啊,不是按照坐标...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼int i;int z0;int j,h0,k0;int AppletWidch,AppletHeight,currentImage;Image Animation[],SerialImage,OffScreen;Thread newThread;Graphics drawOffScreen;MediaTracker MT;ImageProducer Source;CropImageFilter CutImage;publ…

ubuntu安装java的rpm_ubuntu安装jdk-6u45-linux-x64-rpm.bin

1、参考网址:ZC: 网页内容保存于 “百度云 CodeSkill33 --> 全部文件 >来自网页 > Linux > ubuntu > ubuntu安装jdk-6u45-linux-x64-rpm.bin__Work_20160115_0851.rar”2、(1)、我是将jdk-6u45-linux-x64.bin放在 "/home"下的(2)、命令&qu…

java窗体容器坐标_Java的屏幕坐标是以像素为单位的,容器的左下角被确定为坐标的起点。...

屏单位的的左定为的起点Despite ________ difficulties, they did not find the life in London unpleasant.幕坐As soon as I was ____________, I began to have second thoughts about leaving.标被确The girl was uncertain what to do, or what tone of voice to_________…

mysql 相同字段相减_mysql datetime 类型字段相减

背景:今天测试一个mariadb中datatime类型的字段相减问题,直接用2个字段相减得到的数值并不是秒,很坑。后面百度了一些方法,说是使用 DateDiff 函数,这个函数文档还说有3个参数,但是3个参数运行是报错的。要…

java类 连接时机_java类的加载时机

类加载它直接表现出来的代码应该是 ClassLoader.getSystemClassLoader().loadClass("com.my.test.AbcClass")。所以具 体完成类的加载工作的,是常被提到的类加载器ClassLoader,它就是专门干这件事的。“类的加载”具体而言就是指将类.class文件…

Java最短路径类型_JAVA 最短路径

1.从景石出发,步行游览以下景点:①游客服务中心,②阳光草坪,③森林小剧场,④儿童科普体验区,⑤儿童戏水场,⑥湿地博物馆,⑦湿地商业街。建立数学模型,找出从景石出发,到达…

java 外螺旋矩阵_螺旋矩阵的java实现

今天参加了腾讯实习生的在线笔试,螺旋矩阵的问题,算是ACM的入门题吧想到了有两种实现递归和非递归输入:3输出:1 2 3 8 9 4 7 6 5输入:5输出:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 8…

1445.32php,nginx实现mysql的负载均衡

1.下载module模块$ tar -xzvf nginx-1.2.1.tar.gz$ cd nginx-1.2.1/$ patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch /path是指nginx_tcp_proxy_module路径$ ./configure --add-module/usr/local/ngx_cache_purge-1.4--prefix/usr/local/nginx --with-http_stub…

php date 有warning,php提示PHP Warning: date(): It is not safe to rely on the......错误的解决办法...

在写php程序中有时会出现这样的警告&#xff1a;PHP Warning: date(): It is not safe to rely on the systems timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those method…

php不用于输出的函数,PHP常用函数和常见疑难问题解答

首先介绍下比较简单但必不可少且实用的知识&#xff0c;可以当手册查询&#xff0c;适合像我一样的新手看。PHP常用库函数介绍一、PHP字符串操作常用函数1.确定字符串长度int strlen(string str)2.比较两个字符串a. strcmp函数对两个字符串进行二进制安全的比较&#xff0c;并区…

php指定字符编码,PHP字符编码问题

绝对一劳永逸,确保您再也不会遇到编码问题&#xff1a;在任何地方使用UTF-8&#xff01;那是(如果你使用mysql和php)&#xff1a;>例如,将数据库中的所有表格设置为整理“utf8_general_ci”.>建立数据库连接后,运行以下SQL查询&#xff1a;“SET NAMES’utf8’”>始终…

php 开启,PHP服务的开启详细步骤

安装完php,使用chkconfig命令来查看php-fpm服务是否开启&#xff0c;如果没有开启1. 在/etc/init.d/目录下创建脚本php-fpmvim/etc/init.d/php-fpm2. 编写脚本内容(将一下复制进去相应改动安装路径)#!/bin/sh## php-fpm - this script starts and stops the php-fpm daemin## c…