LocalDate使用

   //需要导的包import org.joda.time.Days;import org.joda.time.LocalDate;LocalDate startLocalDate = LocalDateUtil.getLocalDate(startTime);LocalDate endLocalDate = LocalDateUtil.getLocalDate(endTime);int days = Days.daysBetween(startLocalDate, endLocalDate).getDays();

以下是一些常用的封装的LocalDate的方法:

   //String类型的时间撮转LocalDatepublic static LocalDate getLocalDate(String dateStr) {LocalDate localDate = null;if (StringUtils.hasText(dateStr)) {localDate = new LocalDate(Long.valueOf(dateStr));} else {localDate = new LocalDate();}return localDate;}//long类型的时间撮转LocalDate  public static LocalDate getLocalDate(long date) {return new LocalDate(date);}//获取当天的Date(去掉时分秒,只有年月日)public static Date getToday() {DateTime dateTime = new DateTime();LocalDate date = new LocalDate(dateTime);return date.toDate();}//获取昨天的Date(去掉时分秒,只有年月日)public static Date getYesterday() {DateTime dateTime = new DateTime();LocalDate date = new LocalDate(dateTime.minusDays(1));return date.toDate();}//获取明天的Date(去掉时分秒,只有年月日)public static Date getTomorrow() {DateTime dateTime = new DateTime();LocalDate date = new LocalDate(dateTime.plusDays(1));return date.toDate();}//获取这周开始的星期一的时间public static Date getThisWeekStartday() {DateTime dateTime = new DateTime();LocalDate date = new LocalDate(dateTime);return date.dayOfWeek().withMinimumValue().toDate();}//获取上周开始的星期一的时间public static Date getLastWeekStartday() {DateTime dateTime = new DateTime();LocalDate date = new LocalDate(dateTime.minusWeeks(1));return date.dayOfWeek().withMinimumValue().toDate();}//获取这个月开始的星期一的时间public static Date getThisMonthStartday() {DateTime dateTime = new DateTime();LocalDate date = new LocalDate(dateTime);return date.dayOfMonth().withMinimumValue().toDate();}//获取上个月开始的星期一的时间public static Date getLastMonthStartday() {DateTime dateTime = new DateTime();LocalDate date = new LocalDate(dateTime.minusMonths(1));return date.dayOfMonth().withMinimumValue().toDate();}/*** 如果传递的days大于0,表示得到boundary之后的days的日期* 如果传递的days小于0,表示得到boundary之前的days的日期*/public static Date getSpecificDay(Date boundary, int days) {DateTime dateTime = new DateTime(boundary);LocalDate date = null;if (days < 0) {date = new LocalDate(dateTime.minusDays(-days));} else {date = new LocalDate(dateTime.plusDays(days));}return date.toDate();}//立即数:相当于高级语言中的常量(常数),它是直接出现在指令中的数,不用存储在寄存器或存储器中的数,如指令ADD AL,06H中的06H即为立即数//获取两个时间的差距的天数public static int diffDays(Date date1, Date date2) {Date bigDay = null;Date smallDay = null;if (date1.after(date2)) {bigDay = date1;smallDay = date2;} else {bigDay = date2;smallDay = date1;}//return date1.getTime() / (24*60*60*1000) - date2.getTime() / (24*60*60*1000);return (int) (bigDay.getTime() / 86400000 - smallDay.getTime() / 86400000);//用立即数,减少乘法计算的开销} //获取的时区时间和实际的时间差距8个小时public static Date convertByTimeZone(Date date, String timeZoneStr) {if (null == timeZoneStr) {timeZoneStr = "GMT+00";}SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");sf.setTimeZone(TimeZone.getTimeZone(timeZoneStr));Date newDate = null;try {newDate = sf1.parse(sf.format(date));} catch (ParseException e) {logger.error(e.getMessage());}return newDate;}//测试一下方法:     public static void main(String[] args) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");String startDate = "1414024810000";(2014/10/23 8:40:10)LocalDate localDate1 = getLocalDate(startDate);LocalDate localDate2 = getLocalDate(Long.valueOf(startDate));System.out.println("localDate1 = " + localDate1 + ",localDate2 = " + localDate2);Date date1 = getToday();Date date2 = getYesterday();Date date3 = getTomorrow();System.out.println("date1 = " + sdf.format(date1) + " ,date2 = " + sdf.format(date2) + " ,date3 = " + sdf.format(date3));Date date4 = getThisWeekStartday();Date date5 = getLastWeekStartday();Date date6 = getThisMonthStartday();Date date7 = getLastMonthStartday();System.out.println("date4 = " + sdf.format(date4) + " ,date5 = " + sdf.format(date5) + " ,date6 = " + sdf.format(date6) + " ,date7 = " + sdf.format(date7));//得到今天之前的倒数两天的日期 今天是10月23日System.out.println(sdf.format(getSpecificDay(new Date(), -2)));System.out.println(sdf.format(getSpecificDay(new Date(), 2)));int result = diffDays(date3, date1);int result1 = diffDays(date1, date3);System.out.println("result = " + result + ", result1 = " + result1);System.out.println(convertByTimeZone(new Date(), "GMT+00"));System.out.println(sdf.format(convertByTimeZone(new Date(), "GMT+00")));}
 //结果输出:localDate1 = 2014-10-23,localDate2 = 2014-10-23date1 = 2014/10/23 00:00:00 ,date2 = 2014/10/22 00:00:00 ,date3 = 2014/10/24 00:00:00date4 = 2014/10/20 00:00:00 ,date5 = 2014/10/13 00:00:00 ,date6 = 2014/10/01 00:00:00 ,date7 = 2014/09/01 00:00:002014/10/21 00:00:002014/10/25 00:00:00result = 1, result1 = 1Thu Oct 23 11:35:23 CST 20142014/10/23 11:35:23

LocalDate使用相关推荐

  1. 使用LocalDate计算给定2个日期的几年几月几日

    个人资源与分享网站:http://xiaocaoshare.com/ @ApiOperation(value = "计算租期年限")     @RequestMapping(val ...

  2. “干掉” Date,Java8 LocalDate 真香!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 # 简介 伴随 lambda表达式.streams 以及一系列小优 ...

  3. mysql 实现yyyyww_java – LocalDate无法使用’yyyy’解析’ww’

    @Kayaman的接受答案是不正确的,因为您不能混合标准日期表示(使用yyyy =年龄)和周日表示(使用ww =基于周的年份的周).标准日历年和基于周的年份之间的微妙差异在日历年的开始或结束附近是相关 ...

  4. JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter

    JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter 参考文章: (1)J ...

  5. 将java.time.LocalDate转换为java.util.Date类型

    本文翻译自:Convert java.time.LocalDate into java.util.Date type I want to convert java.time.LocalDate int ...

  6. localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化

    一 前言 二 时间戳与LocalDateTime互转 2.1 LocalDateTime 转 时间戳 方式一 这边值得一提的是在中国的时区偏移是8小时,本次示例转的时间戳是秒级别,得到的值是一个lon ...

  7. Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题

    LocalDate. LocalTime. LocalDateTime是Java 8开始提供的时间日期API,主要用来优化Java 8以前对于时间日期的处理操作.然而,我们在使用Spring Clou ...

  8. java中的localDate类_java8-LocalDate类

    LocalDate类使用ISO日历表示年.月.日. LocalDate.now(); 获取系统当前日期 LocalDate.of(int year,int month,int dayOfMonth); ...

  9. localBlock在java_将java.util.Date转换为java.time.LocalDate

    小编典典 Date input = new Date(); LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLo ...

  10. localdate获取几个月前_关于近期使用java8中LocalDateTime的总结

    1. 前言 前不久项目codereview,发现有同事在处理日期的时候用LocalDateTime,当时还比较好奇,以前用都是用Date,虽然从开始接触java8也有几年时间了,但是还真不知道java ...

最新文章

  1. C# Socket使用代理 及 Http协议、Socks5协议
  2. 广西大学计算机科学与技术中法,广西大学
  3. jQuery 3.3.1已经发布,开发团队正在准备4.0版本
  4. c/c++比较灵活的方法:回调函数和函数指针
  5. mysql架构 视频_企业常见MySQL架构应用实战(高可用集群系统+调优经验)视频课程...
  6. 第 4 章 程序计数器
  7. Mac 开发 Hue
  8. gifimageview 大小不受控制_大小不变,提示换药?别紧张!三个案例解读“肿瘤大小与疗效关系”...
  9. 2019年软考程序员考试大纲
  10. Selenium2_如何判断WebElement元素对象是否存在
  11. Qt发布版权问题,是否需要公开源码?开源版与商业版的区别?
  12. 内连接、左外连接与右外连接的区别及作用介绍
  13. python网页提交表单_python模拟实现自动填写网页表单源码
  14. Python怼人代码,让编程变得更有趣
  15. tensorflow sess.run()
  16. 极验滑块识别-通用滑块识别
  17. ASR6601牛羊定位器芯片GPS国内首颗支持LoRa的LPWAN SoC
  18. ORACLE中添加删除主键
  19. 王者荣耀小游戏(发给你的好兄弟(大怨种)^-^)
  20. 石高峰:顾客不会反感的实体店销售技巧和话术,成交率翻3倍!

热门文章

  1. 怕上当?来看这份网络钓鱼和诈骗技术趋势
  2. Matlab实现Harris角点检测
  3. .NetCore框架Surging系列(三)HTTP本地路由发现过程
  4. Java商户发送微信红包给用户
  5. java实现拜占庭将军_什么是拜占庭将军问题(一)
  6. java毕业设计大学生个人博客网站Mybatis+系统+数据库+调试部署
  7. 工业互联网也迈入新的发展阶段 AI助力构建新型制造体系
  8. java基础学习大纲
  9. 2008 R2修复光盘_中了后缀.「mr.hacker@tutanota.com」勒索病毒的SQL数据库修复技术
  10. 12.cgroup介绍