String类型转localDate,date转localDate的实现代码

看代码吧~

String 类型转localDate

LocalDate beginDateTime = LocalDate.parse(beginDate, DateTimeFormatter.ofPattern(“yyyy-MM-dd”));

date类型转localDate

Date dates = new SimpleDateFormat(“yyyyMM”).parse(cycle);
Instant instant = dates.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = instant.atZone(zoneId).toLocalDate();

补充知识:LocalDateTime与字符串互转/Date互转/LocalDate互转/指定日期/时间比较/循环

Java 8中表示日期和时间的类有多个,主要的有:

Instant:表示时刻,不直接对应年月日信息,需要通过时区转换

LocalDateTime: 表示与时区无关的日期和时间信息,不直接对应时刻,需要通过时区转换

LocalDate:表示与时区无关的日期,与LocalDateTime相比,只有日期信息,没有时间信息

LocalTime:表示与时区无关的时间,与LocalDateTime相比,只有时间信息,没有日期信息

ZonedDateTime: 表示特定时区的日期和时间

ZoneId/ZoneOffset:表示时区

与字符串互转

简单粗暴

DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime time = LocalDateTime.now();
String localTime = df.format(time);
LocalDateTime ldt = LocalDateTime.parse("2018-06-01 10:12:05",df);
System.out.println("LocalDateTime转成String类型的时间:"+localTime);
System.out.println("String类型的时间转成LocalDateTime:"+ldt);

与Date互转

java.util.Date date = new java.util.Date();
 Instant instant = date.toInstant();
 ZoneId zone = ZoneId.systemDefault();
 LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
LocalDateTime localDateTime = LocalDateTime.now();
 ZoneId zone = ZoneId.systemDefault();
 Instant instant = localDateTime.atZone(zone).toInstant();
 java.util.Date date = Date.from(instant);

与LocalDate互转

LocalDateTime now = LocalDateTime.now();

LocalDate localDate = now.toLocalDate();

LocalDate localDate = LocalDate.now();
 ZoneId zone = ZoneId.systemDefault();
 Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
 java.util.Date date = Date.from(instant);

调整时间

LocalDateTime now = LocalDateTime.now();
 //明天
 LocalDateTime plusDays = now.plusDays(1);
 //昨天
 LocalDateTime plusDays2 = now.plusDays(-1);
 //还有时分等同理

时间比较

LocalDateTime now = LocalDateTime.now();

Long epochMilli = now.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();

然后比较long就可以了

默认时区是ZoneId.systemDefault()

//北京时区

ZoneId bjZone = ZoneId.of("GMT+08:00")

间隔计算

使用Duration进行 day,hour,minute,second等的计算

使用Period进行Year,Month的计算

Duration duration = Duration.between(localDateTime,localDateTime4);
duration.toDays();
duration.toHours();
duration.toMinutes();
Period period2 = Period.between(localDateTime.toLocalDate(),localDateTime4.toLocalDate());
period2.getYears();
period2.getMonths();
period2.toTotalMonths();

判断是否是今天或昨天

String time = "2018-08-09 11:20:45";
  DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
  LocalDateTime localTime = LocalDateTime.parse(time, dtf);
  LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);
  LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);
  LocalDateTime startYesterday = LocalDate.now().plusDays(-1).atTime(0, 0, 0);
  LocalDateTime endYesterday = LocalDate.now().plusDays(-1).atTime(23, 59, 59);

  //如果小于昨天的开始日期
  if (localTime.isBefore(startYesterday)) {
   System.out.println("时间是过去");
  }
  //时间是昨天
  if (localTime.isAfter(startYesterday) && localTime.isBefore(endYesterday)) {
   System.out.println("时间是昨天");
  }
  //如果大于今天的开始日期,小于今天的结束日期
  if (localTime.isAfter(startTime) && localTime.isBefore(endTime)) {
   System.out.println("时间是今天");
  }
  //如果大于今天的结束日期
  if (localTime.isAfter(endTime)) {
   System.out.println("时间是未来");
  }
 }

循环某段时间

LocalDate start = LocalDate.of(2019, 4, 29);
  LocalDate end = LocalDate.of(2019, 7, 29);
  do {
   System.out.println(start);
   start = start.plusDays(1);
  } while (start.toEpochDay() <= end.toEpochDay());

获取最近7天每天开始和结束时间戳

LocalDate start = LocalDate.now().plusDays(-7);
  LocalDate end = LocalDate.now();
  do {
   start.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
   start.atTime(LocalTime.MAX).atZone(ZoneId.systemDefault())
    .toInstant().toEpochMilli();
   start = start.plusDays(1);
  } while (start.toEpochDay() <= end.toEpochDay());
 

以上这篇String类型转localDate,date转localDate的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • idea 解决用骨架创建项目过慢的操作方式

    如下图:点击加号添加键值对: archetypeCatalog internal 补充知识:idea+maven+tomcat报404 我的解决办法是直接将war包路劲改成webapp路径 以上这篇idea 解决用骨架创建项目过慢的操作方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决java idea新建子目录时命名不是树形结构的问题

    问题再现 解决办法:点击设置,然后再点击Compact Middle Packages,如下图: 成功 补充知识:idea 2019.2 svn 忽略文件/目录 .idea *.iml target log 背景 idea 2019.2 不再支持忽略 svn 文件和目录的功能,我们可以使用小乌龟自带的功能来解决这个问题. 1. 在项目根目录的空白处,点击右键菜单 TortoiseSVN->Properties 2. New->Other 3. 选择svn:global-ignores 所有子目

  • java8新特性之stream的collect实战教程

    1.list转换成list 不带return方式 List<Long> ids=wrongTmpList.stream().map(c->c.getId()).collect(Collectors.toList()); 带return方式 // spu集合转化成spubo集合//java8的新特性 List<SpuBo> spuBos=spuList.stream().map(spu -> { SpuBo spuBo = new SpuBo(); BeanUtils.c

  • Java8时间转换(LocalDateTime)代码实例

    这篇文章主要介绍了java8时间转换(LocalDateTime)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.将LocalDateTime转为自定义的时间格式的字符串 public static String getDateTimeAsString(LocalDateTime localDateTime, String format) { DateTimeFormatter formatter = DateTimeFormatt

  • Java8中的LocalDateTime和Date一些时间操作方法

    先记录下jdk8之前的一些帮助方法 判断time是否在now的n天之内 /** * 判断time是否在now的n天之内 * @param time * @param now * @param n 正数表示在条件时间n天之后,负数表示在条件时间n天之前 * @return */ public static boolean belongDate(Date time, Date now, int n) { SimpleDateFormat sdf = new SimpleDateFormat("yyy

  • idea 普通文件夹 转换成 module操作

    经常会遇到从GitHub上download的progect在idea里面打开是普通文件夹形式,而并不是我们想要的module形式(文件夹图标右下角有个蓝色的tag),那么如何快速转换成我们想要的module形式呢? 1.右击project,选择第二项"add framework support",然后从对话框左侧选择"Maven",OK即可 2.设置maven仓库地址:右击file,选择settings,找到maven,设置maven home directory以

  • String类型转localDate,date转localDate的实现代码

    看代码吧~ String 类型转localDate LocalDate beginDateTime = LocalDate.parse(beginDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); date类型转localDate Date dates = new SimpleDateFormat("yyyyMM").parse(cycle); Instant instant = dates.toInstant();

  • Java日期工具类操作字符串Date和LocalDate互转

    目录 字符串转Date Date转字符串 字符串转LocalDate Date转LocalDate LocalDate转字符串 两个日期的时间差 一天的开始和结束时间 工具类 前言: 避免重复造轮子,相关方法基于hutool日期时间工具封装并做部分增强.需要先引入如下坐标 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <versio

  • 浅谈C++中的string 类型占几个字节

    在C语言中我们操作字符串肯定用到的是指针或者数组,这样相对来说对字符串的处理还是比较麻烦的,好在C++中提供了 string 类型的支持,让我们在处理字符串时方便了许多. 首先,我写了一段测试代码,如下所示: 复制代码 代码如下: #include <iostream>using namespace std; int main(void){ string str_test1; string str_test2 = "Hello World"; int value1, val

  • JavaScript的基本类型值-String类型

    大致介绍 String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串.在JavaScript中没有单个的字符型,都是字符串.字符型就相当于只包含一个字符的字符串. 引号 字符串可以由双引号("")或单引号('')表示,但是要注意,如果是双引号开始就要以双引号结束,单双引号是可以嵌套的 "hello"; //正确         'hello'; //正确         'hello"; //错误         "hel

  • java Long类型转为String类型的两种方式及区别说明

    目录 java Long类型转为String类型 1.Long.ValueOf("String")返回Long包装类型数据 2.Long.parseLong("String")返回long基本数据类型 Java中Long.String.Date 类型之间的转换 1.Java.util.Date类型转换成long类型 2.long类型转换成java.util.Date类型 3.形如"2015-08-31 21:08:06"等格式化string类型转

  • 浅谈String类型如何转换为time类型存进数据库

    目录 String转换为time存进数据库 这里就列举一个例子 java里面的类型是string类型 我使用的是java提供的传统的jdbc接口连接数据库 String类型的数字转换为时间日期格式 问题描述 String转换为time存进数据库 很久没试过将String类型转换并存进数据库中的date类型的字段,今天刚好遇到并解决了这个小问题,故写下来加深印象. 平时我们一般将数据库里面关于时间的处理字段设置为char之类的字符型,这样的好处是便于读取和存入,省掉了转换类型的麻烦. 但有时也会需

  • 自己模拟写C++中的String类型实例讲解

    下面是模拟实现字符串的相关功能,它包括一下功能: String(const char * s);//利用字符串来初始化对象 String(); //默认构造函数 String(const String & s);//复制构造函数,利用String类型来初始化对象 ~String(); //析构函数 int length(); //返回String类型中字符串的长度 String & operator=(const String & s);//重载=运算符. String &

  • C++中将string类型转化为int类型

    写程序需要将string转化为int,所以就探索了一下. 方法一:atoi函数 atoi函数将字符串转化为整数,注意需要stdlib库.所以就尝试了一下: #include <iostream> #include <string.h> #include <stdlib.h> using namespace std; int main() { string a="11",b="22"; cout<<atoi(a)+ato

  • Redis02 使用Redis数据库(String类型)全面解析

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为String 的记录. 在客户端输入命令: C:\software\redis\64bit>redis-cli.exe -h 127.0.0.1 -p 6379 redis 127.0.0.1:6379> set foo test OK redis 127.0.0.1:6379> get fo

  • js中string转int把String类型转化成int类型

    今天做项目的时候,碰到一个问题,需要把String类型的变量转化成int类型的.按照常规,我写了var i = Integer.parseInt("112");但控制台报错,说是"'Integer' 未定义".后来,才知道,原来js中String转int和Java中不一样,不能直接把Java中的用到js中.改成var j = parseInt("11");就ok了. 备注:无论是 Java 还是 JavaScript, parseInt 方法都有

随机推荐