jdk1.8新日期时间类(DateTime、LocalDateTime)demo代码
//获取当前时间
LocalDateTime d0 = LocalDateTime.now();
System.out.println(DataConvertUtil.localDateTimeToStr(d0, "yyyy-MM-dd HH:mm:ss")); //输入年月日时分秒实例化新的时间对象
LocalDateTime d1 = LocalDateTime.of(2017, 5, 15, 20, 32, 12);
System.out.println(DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd HH:mm:ss")); //对一个时间对象加5分钟(同理也可加/减,年/月/日/时/分/秒),加是plus,减是minus
LocalDateTime d2 = d1.plusMinutes(5);
System.out.println(DataConvertUtil.localDateTimeToStr(d2, "yyyy-MM-dd HH:mm:ss")); //对一个时间对象单独设置年月日时分秒
//把小时设为5点
LocalDateTime d21 = d2.withHour(5);
//把小时设为5点,0分,0秒
d21 = d2.withHour(6).withMinute(0).withSecond(0);
System.out.println(DataConvertUtil.localDateTimeToStr(d21, "yyyy-MM-dd HH:mm:ss")); //获取日(同理也可获取年月日时分秒)
int day = d2.getDayOfMonth();
System.out.println(day); //判断两个时间的先后,可以用isAfter或isBefore,如下例就是判断d2是否晚于d1
boolean b1 = d2.isAfter(d1);
System.out.println(b1); //两个时间相减,获取时间差(例子为d2-d1,并获取时间差(单位:分钟))
//类似Duration的还有Period,Period专用于计算年月日
Duration duration = Duration.between(d1, d2);
long m1 = duration.toMinutes();
System.out.println(m1); //Date和LocalDateTime互转
Date dx1 = DataConvertUtil.localDateTimeToDate(d1);
LocalDateTime d3 = DataConvertUtil.dateToLocalDateTime(dx1);
System.out.println(DataConvertUtil.localDateTimeToStr(d3, "yyyy-MM-dd HH:mm:ss")); //Date和LocalDate互转
LocalDate d31 = LocalDate.now();
dx1 = DataConvertUtil.localDateToDate(d31);
d31 = DataConvertUtil.dateToLocalDate(dx1); //LocalDateTime按指定格式输出string
//还有可指定输出格式版本localDateTimeToStr(LocalDateTime value, String format)
String s1 = DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd HH:mm:ss");
System.out.println("s1=" + s1); //string按指定格式转为LocalDateTime
//还有可指定格式版本strToLocalDateTime(String value, String format)
LocalDateTime d4 = DataConvertUtil.strToLocalDateTime(s1, "yyyy-MM-dd HH:mm:ss");
System.out.println(DataConvertUtil.localDateTimeToStr(d4, "yyyy-MM-dd HH:mm:ss"));
//注意!!!!!
//由于LocalDateTime类型的限制,字符串转LocalDateTime时字符串值必须完整包含年月日时分秒,而实际情况经常会只有年月日
//对于这种情况,可以用下例的DataConvertUtil.strToLocalDate转为LocalDate类型,然后再把LocalDate转为LocalDateTime
String s2 = DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd");
//字符串转LocalDate
LocalDate d5 = DataConvertUtil.strToLocalDate(s2, "yyyy-MM-dd");
System.out.println(DataConvertUtil.localDateToStr(d5));
//LocalDate转LocalDateTime
LocalDateTime d6 = LocalDateTime.of(d5, LocalTime.of(0, 0));
System.out.println(DataConvertUtil.localDateTimeToStr(d6, "yyyy-MM-dd HH:mm:ss")); //以下补充DataConvertUtil类的相关函数
/**
* LocalDateTime转Date
*
* @param localDateTime
* @return
*/
public static Date localDateTimeToDate(LocalDateTime localDateTime) {
if (localDateTime == null) return null; return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
} /**
* Date转LocalDateTime
*
* @param date
* @return
*/
public static LocalDateTime dateToLocalDateTime(Date date) {
if (date == null) return null; return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
} /**
* LocalDate转Date
*
* @param localDate
* @return
*/
public static Date localDateToDate(LocalDate localDate) {
if (localDate == null) return null; return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
} /**
* Date转LocalDate
*
* @param date
* @return
*/
public static LocalDate dateToLocalDate(Date date) {
if (date == null) return null; return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
} /**
* 日期时间(LocalDateTime)按默认格式转字符串
*
* @param value
* @return
*/
public static String localDateTimeToStr(LocalDateTime value) {
return localDateTimeToStr(value, "yyyy-MM-dd");
} /**
* 日期时间(LocalDateTime)按指定格式转字符串
*
* @param value
* @param format
* @return
*/
public static String localDateTimeToStr(LocalDateTime value, String format) {
String dateString;
if (value == null) {
dateString = "";
} else {
DateTimeFormatter formatDate = DateTimeFormatter.ofPattern(format);
dateString = value.format(formatDate);
} return dateString;
} /**
* 字符串按默认格式转日期时间(LocalDateTime)
*
* @param value
* @return
*/
public static LocalDateTime strToLocalDateTime(String value) {
return strToLocalDateTime(value, "yyyy-MM-dd HH:mm:ss");
} /**
* 字符串按指定格式转日期时间(LocalDateTime)
*
* @param value
* @param format
* @return
*/
public static LocalDateTime strToLocalDateTime(String value, String format) {
if (value != null && value.trim().length() > 0) {
DateTimeFormatter formatDate = DateTimeFormatter.ofPattern(format); try {
return LocalDateTime.parse(value, formatDate);
} catch (Exception e) {
return null;
}
} return null;
}
jdk1.8新日期时间类(DateTime、LocalDateTime)demo代码的更多相关文章
- Java 之 JDK1.8之前日期时间类
一.JDK1.8之前日期时间类 二. java.lang.System类 System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1 ...
- jdk8环境下sprngboot/springmvc中JSR310新日期/时间类LocalDateTime显示效果带T
如图所示: 日期时间类中带了一个T,以上这种格式LocalDateTime格式化的时候默认日期时间格式:ISO.DATE_TIME(按笔者目前的知识理解是ISO8601规范中的日期时间格式化) 想要把 ...
- springboot Thymeleaf中格式化jsr310新日期时间类(LocalDateTime,LocalDate)--thymeleaf格式化LocalDateTime,LocalDate等JDK8新时间类
依赖maven包 <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>th ...
- 日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结
1.日期类,时间类,日期时间类 初步日期使用方法及格式转换方法(旧方法): 格式://Mon Jul 30 11:26:05 CST 2018 年月日时分秒 CST代表北 ...
- 详解 JDK8 新增的日期时间类
JDK8 新增的日期时间类 在本人之前的博文<处理时间的类 -- System类.Date类 .SimpleDateFormat类 与 Calendar类>中,讲到过表示时间的类,有三类: ...
- 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...
- Java 8 新日期时间 API
Java 8 新日期时间 API 1. LocalDate.LocalTime.LocalDateTime LocalDate.LocalTime.LocalDateTime 实例是不可变的对象,分别 ...
- 第十一章 容器类&新日期时间
11.1.Optional 容器类 11.1.1.概述 Optional 类是一个容器类,代表一个值存在或不存在, 原来用 null 表示一个值不存在,现在 Optional类 可以更好的表达这个概念 ...
- 日期时间类:Date,Calendar,计算类:Math
日期时间类 计算机如何表示时间? 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms). 计算机中时间2 ...
随机推荐
- Oracle:imp导入imp-00000问题
现场环境:window2008 . oracle11.2g .客户端安装的是oracle10g一个简洁版 34M的. 在imp导入时,提示 Message 100 not found; No mes ...
- Servlet的HelloWorld
设置好TOMCAT环境变量(如何设置?)后在命令行输入startup可以启动Tomcat,输入shutdown可以关闭Tomcat. /WEB-INF/web.xml是称为部署描述器的配置文件,Jav ...
- Android studio Unable to run mksdcard SDK tool
/******************************************************************************************** * Andr ...
- CodeForces19D:Points(线段树+set(动态查找每个点右上方的点))
Pete and Bob invented a new interesting game. Bob takes a sheet of paper and locates a Cartesian coo ...
- iOS NSInteger/NSUInteger与int/unsigned int、long/unsigned long之间的区别!
在iOS开发中经常使用NSInteger和NSUInteger,而在其他的类似于C++的语言中,我们经常使用的是int.unsigned int.我们知道iOS也可以使用g++编译器,那么它们之间是否 ...
- Bootstrap-CSS:表单
ylbtech-Bootstrap-CSS:表单 1.返回顶部 1. Bootstrap 表单 在本章中,我们将学习如何使用 Bootstrap 创建表单.Bootstrap 通过一些简单的 HTML ...
- C++实现查找链表中环的入口节点
/* * 寻找链表中环的入口节点.cpp * * Created on: 2018年4月10日 * Author: soyo */ #include<iostream> using nam ...
- 4、html的body内标签之input系列
一.input标签与form表单 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- k8s-部署dashboard1.10.1-十七
一.获取镜像和填坑 我的k8s是1.13.1,这里dashboard用的1.10.1: 由于国内不能访问Google,而且大部分人可能也没有其他途径访问:只能在阿里云或者其他镜像网站上获取了: 镜像获 ...
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 18. 基于Claim和Policy的授权 下 - 自定义Policy
在加一个策略,要求cliam的值必须是123 第二个参数的类型 可变参数 ,可以是这三种类型 变成一个集合也可以 策略内置的几种方式 自定义 RequireAssetion的参数是个Func,Func ...