//获取当前时间
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代码的更多相关文章

  1. Java 之 JDK1.8之前日期时间类

    一.JDK1.8之前日期时间类 二. java.lang.System类 System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1 ...

  2. jdk8环境下sprngboot/springmvc中JSR310新日期/时间类LocalDateTime显示效果带T

    如图所示: 日期时间类中带了一个T,以上这种格式LocalDateTime格式化的时候默认日期时间格式:ISO.DATE_TIME(按笔者目前的知识理解是ISO8601规范中的日期时间格式化) 想要把 ...

  3. springboot Thymeleaf中格式化jsr310新日期时间类(LocalDateTime,LocalDate)--thymeleaf格式化LocalDateTime,LocalDate等JDK8新时间类

    依赖maven包 <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>th ...

  4. 日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结

    1.日期类,时间类,日期时间类 初步日期使用方法及格式转换方法(旧方法): 格式://Mon Jul 30 11:26:05 CST 2018             年月日时分秒    CST代表北 ...

  5. 详解 JDK8 新增的日期时间类

    JDK8 新增的日期时间类 在本人之前的博文<处理时间的类 -- System类.Date类 .SimpleDateFormat类 与 Calendar类>中,讲到过表示时间的类,有三类: ...

  6. 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码

    本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...

  7. Java 8 新日期时间 API

    Java 8 新日期时间 API 1. LocalDate.LocalTime.LocalDateTime LocalDate.LocalTime.LocalDateTime 实例是不可变的对象,分别 ...

  8. 第十一章 容器类&新日期时间

    11.1.Optional 容器类 11.1.1.概述 Optional 类是一个容器类,代表一个值存在或不存在, 原来用 null 表示一个值不存在,现在 Optional类 可以更好的表达这个概念 ...

  9. 日期时间类:Date,Calendar,计算类:Math

    日期时间类 计算机如何表示时间? 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms). 计算机中时间2 ...

随机推荐

  1. ref 与 $refs 如何关联

    先问大家一个简单的问题: 还有人记得 jquery 里面的 data 方法是如何让 DOM 节点绑定对应的数据对象的吗 有时候我们做节点关联设计的思路其实有一点类似,但是在 vue 里面多了很多概念, ...

  2. POJ3984 迷宫问题 —— BFS

    题目链接:http://poj.org/problem?id=3984 迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  3. HDU 1081:To The Max

    To The Max Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  4. TypeError: can't convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.

    报错原因:numpy不能读取CUDA tensor 需要将它转化为 CPU tensor. 所以如果想把CUDA tensor格式的数据改成numpy时,需要先将其转换成cpu float-tenso ...

  5. 浏览器加载显示html页面内容的顺序

    我们经常看到浏览器在加载某个页面时,部分内容先显示出来,又有些内容后显示.那么浏览器加载显示html究竟是按什么顺序进行的呢 其实浏览器加载显示html的顺序是按下面的顺序进行的:1.IE下载的顺序是 ...

  6. threesixty.min.js 和jquery.threesixty.js使用总结----实现360度展示

    最近公司做一个项目需要360度展示汽车的外观,就用到了threesixty.min.js,自己总结一下使用方法: treesixty.min.js 源码: /*! threesixty-slider ...

  7. C++实现利用(前序和中序生成二叉树)以及(二叉树的镜像)

    #include<iostream> #include<string.h> #include<stack> using namespace std; typedef ...

  8. 洛谷 - P1198 - 最大数 - 线段树

    https://www.luogu.org/problemnew/show/P1198 要问区间最大值,肯定是要用线段树的,不能用树状数组.(因为没有逆元?但是题目求的是最后一段,可以改成类似前缀和啊 ...

  9. C++笔试题(三)

    普天是南京一家通信公司,全称为:南京普天通信股份有限公司,公司网址为:http://www.postel.com.cn 网上流传一套普天C++笔试题,我将我做的答案公布与此,仅供参考. 1.实现双向链 ...

  10. P1229-神秘岛

    神秘岛 描述 Description FireDancer来到一个神秘岛,他要从岛的西头到东头然后在东头的码头离开.可是当他走了一次后,发现这个岛的景色非常的美丽,于是他从东头的传送门传到了西头,换了 ...