//获取当前时间
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. 如何使用git 生成patch 和打入patch【转】

    本文转载自:http://blog.csdn.net/liuhaomatou/article/details/54410361 平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用 ...

  2. chdir函数的使用【学习笔记】

    #include "apue.h" #include <fcntl.h> int main(void) { ) err_sys("chdir failed&q ...

  3. HDU3709 Balanced Number —— 数位DP

    题目链接:https://vjudge.net/problem/HDU-3709 Balanced Number Time Limit: 10000/5000 MS (Java/Others)     ...

  4. html5--6-57 阶段练习6-折叠导航栏

    html5--6-57 阶段练习6-折叠导航栏 实例 @charset="UTF-8"; *{ ; ; } h3+div{ ; overflow: hidden; transiti ...

  5. C++ set和map的简单使用

    C++中的STL模板库的功能可谓相当强大.今天我们来简单说一下set和map的使用方法. 1.pair 我们先来说一下pair.pair定义在头文件<utility>中,其本身相当于一个已 ...

  6. gunicorn启动django时静态文件的加载

    目前在用nginx+gunicorn对django进行部署 当我用gunicorn -w 4 -b 127.0.0.1:8080 myproject.wsig:application启动django时 ...

  7. 六个优雅的 Linux 命令行技巧

    一些非常有用的命令能让命令行的生活更满足,使用 Linux 命令工作可以获得许多乐趣,但是如果您使用一些命令,它们可以减少您的工作或以有趣的方式显示信息时,您将获得更多的乐趣.在今天的文章中,我们将介 ...

  8. linux的存储结构

    在linux中存储结构如下: Linux系统中的文件存储结构 那么在linux中每个目录都是什么含义呢 在linux中相对路径和绝对路径是必须要了解的一个概念 绝对路径(absolute path): ...

  9. 用Python在局域网根据IP地址查找计算机名

    1.要使用socket模块 代码如下: import sys, socket # hostname = socket.gethostname()# print("Host name:&quo ...

  10. mysqldump 工具使用详解——参数选项

    mysqldump 简介 mysqldump 是一种用于逻辑备份的客户端工具,它会产生一套能够重新构建数据库或表的SQL语句.所谓逻辑备份:是利用SQL语言从数据库中抽取数据并存于二进制文件的过程.逻 ...