我看前面已经有人说到Java8了...不过这个写法是有点尴尬...思路大家基本一样...

给的start时间要变为当前月的第一天

给的end时间要变为当前月的最后一天

关键是如何变的问题...Java8的时间是有现成的API可以调用的...不需要parse这种方式...变成第一天还好,变成最后一天有诸多的判断...

代码如下,按照所给条件,写了一个isBetween方法

public static boolean isBetween(String date, String start, String end){

// 把start转化为start所在月份的第一天

LocalDate startDate = LocalDate.now().with(YearMonth.parse(start)).with(TemporalAdjusters.firstDayOfMonth());

// 把end转化为end所在月份的最后一天

LocalDate endDate = LocalDate.now().with(YearMonth.parse(end)).with(TemporalAdjusters.lastDayOfMonth());

// 把date转化为LocalDate

LocalDate currentDate = LocalDate.parse(date);

return currentDate.isAfter(startDate) && currentDate.isBefore(endDate);

}

简单解释一下...

yyyy-mm这种年月的形式在Java8中已经有新的类来处理,这就是YearMonth(它是一个TemporalAdjuster的实现类),根据LocalDate(它是一个Temporal的实现类)的with方法,其实是Temporal接口的with方法,这里涉及到Java8的新时间API的设计,with方法签名如下

含义即是:一个Temporal对象可以根据一个TemporalAdjuster对象进行调整

所以结合到上面写的代码,思路如下

随意取了当前时间LocalDate A

把A根据传入的YearMonth进行修改(调用with方法),即调整时间的年和月,得到时间B

把B再根据一个调整器TemporalAdjuster(TemporalAdjusters.firstDayOfMonth),调整时间的日,得到最后的时间

其实时间调整,在TemporalAdjusters中已经封装了不少常用的了...用起来也简单直白好用的,可以关注这个类

最后,提供一个我以前自己简单连的Java8新时间API的一些关系,跟着这些关系可以再看看具体类,捋捋关系,会发现新时间API不但好用还很强大

java和当前时间比较_java比较时间相关推荐

  1. java 日期时间工具_Java日期时间类工具

    Java日期时间类工具 Java日期时间类 Date类 Java提供的Date类和Calendar类用于处理日期和时间的类,包括创建日期,时间对象,获取系统当前日期,时间 等操作.但Date类无法实现 ...

  2. java 包结构 枚举类_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...

    因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...

  3. java时间规范化_Java日期时间使用总结

    一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在Java中 ...

  4. java date只保留年月日_Java日期时间API系列14-----Jdk8中日期API类,日期计算1,获取年月日时分秒等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  5. java date加一天_Java日期时间API系列15-----Jdk8中API类,java日期计算2,年月日时分秒的加减等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  6. java获取时分秒毫秒_java实现时间格式转换(int整数类型的秒/毫秒---时分秒毫秒)...

    1. 直接上干货:(可提取为工具类收藏哦 ^_^) package com.drew.utils; import java.text.SimpleDateFormat; import java.uti ...

  7. java 格式化时间 小时_java格式化时间示例

    实现日期的格式化,需要用到类: java.text.DateFormat DateFormat没有可以直接使用的构造函数,一般使用DateFormate的子类---java.text.SimpleDa ...

  8. java获取当前时间年月_Java获取时间年、月、日的方法

    本文实例讲述了Java获取时间年.月.日的方法.分享给大家供大家参考.具体实现方法如下: package com.date.demo; import java.text.ParseException; ...

  9. java年月日时分秒格式_Java 日期时间 LocalDate LocalTime LocalDateTime类

    // LoacalDate, LocalTime, LocalDateTime类// 不要使用构造器来构造LocalDate类的对象.实际上,应该使用LocalDate.now()静态工厂方法代表你调 ...

  10. java时间计算器_java后台时间计算

    将毫秒转换成年月日时分秒 public static void main(String[] args) { Date date = new Date(); System.out.println(dat ...

最新文章

  1. VMware中创建Ubuntu16.0.4虚拟桥连方式无法上网
  2. 客户花钱雇黑客,竟是为Zoom找bug:风口浪尖的视频会议No.1,安全问题如此魔幻...
  3. python3 socket shutdown 简介
  4. 1.2 检测和测量图像中的圆形目标
  5. .Net 操作MSMQ
  6. 新东方在线、猿辅导等强敌环伺,「好未来」可有好未来?
  7. getter和setter
  8. Redis:安装、配置、操作和简单代码实例(C语言Client端)[转]
  9. webpack(一) 配置
  10. python 反射和动态加载_Python的反射
  11. DSP5509项目之用FFT识别钢琴音调(5)之开始傅里叶变换
  12. BP反向传播一文弄懂神经网络中的反向传播法
  13. linux安装neo4j
  14. Unity 原生版本管理工具VersionControl - Plastic SCM 详解
  15. DevOps案例研究|中华有为-解构华为软开云DevOps实践
  16. Leetcode-机器人大冒险 (python)
  17. light7ui 刷新子页面 js不能加载的问题
  18. Unreal4引擎开发学习日志
  19. 【51单片机快速入门指南】4.2: SSD1306 OLED屏(0.96寸、1.3寸)的I2C控制详解
  20. 吐血整理:手拿几个大厂offer的秘密武器!(免费领取)

热门文章

  1. free获取发明专利
  2. 【算法案例】人脸自动补全
  3. 综合网络(华为ensp)
  4. 谷粒商城skuId远程调用查询库存功能总结
  5. mysql隔离级别详解
  6. XSS平台获取cookie
  7. linux地址virbr0,命令行如何修改KVM生产的virbr0的地址
  8. Exchange Server 常见问题
  9. 电脑录屏软件哪个好?怎么样录制长视频
  10. (四)路径规划算法---QP解决Minimum Snap轨迹优化问题