资讯专栏INFORMATION COLUMN

时间处理(格式化、本日、本周、本月、本季度等)

vboy1010 / 2867人阅读

摘要:依赖包方式方式时间处理获取当前时间获取当前时间默认格式化指定格式化年月日指定格式化打印结果默认格式化指定格式化年月日指定格式化年月日时分秒格式化如果输入的是字符串则转为日期类型,反之则转为字符串类型。

依赖jar包 gradle方式

</>复制代码

  1. compile group:"com.gitee.zhtt",name:"great-javautils",version:"8.0.1-alpha.3"
maven方式

</>复制代码

  1. com.gitee.zhtt
  2. great-javautils
  3. 8.0.1-alpha.3
1、时间处理(DateTimeUtils) 1.1、获取当前时间

</>复制代码

  1. @Test
  2. public void getTime(){
  3. //获取当前时间
  4. Date date = DateTimeUtils.getTime();
  5. System.out.printf("默认格式化:%s
  6. ",DateTimeUtils.format(date));
  7. System.out.printf("指定格式化:%s
  8. ",DateTimeUtils.format(date,"yyyy年MM月dd日"));
  9. System.out.printf("指定格式化:%s
  10. ",DateTimeUtils.format(date,DateTimeUtils.ymdhms_cn));
  11. }

打印结果

</>复制代码

  1. 默认格式化:2019-07-08 15:39:10
  2. 指定格式化:2019年07月08日
  3. 指定格式化:2019年07月08日 15时39分10秒
1.2、格式化

如果输入的是字符串则转为日期类型,反之则转为字符串类型。

</>复制代码

  1. @Test
  2. public void format(){
  3. //格式化
  4. String dateStr = "2019-07-07";
  5. Date date = new Date();
  6. try {
  7. Object format1 = DateTimeUtils.format(dateStr);
  8. Object format2 = DateTimeUtils.format(date);
  9. Object format3 = DateTimeUtils.format(date,DateTimeUtils.ymdhm);
  10. System.out.println(format1);
  11. System.out.println(format2);
  12. System.out.println(format3);
  13. } catch (ParseException e) {
  14. e.printStackTrace();
  15. }
  16. }

打印结果

</>复制代码

  1. Sun Jul 07 00:00:00 CST 2019
  2. 2019-07-08 15:52:41
  3. 2019-07-08 15:52
1.3、格式化

有时将excel中的数据导入数据库时,但是用户提供的excel中的日期一列格式各种各样

</>复制代码

  1. @Test
  2. public void format2() throws ParseException {
  3. //格式化
  4. String[] dateStrs = {"2019", "2019-07", "2019-07-07", "2019-07-07 11", "2019-07-07 11:22", "2019-07-07 11:22:11", "2019年11月07日", "2019年11月07日 12时"};
  5. for(String str:dateStrs){
  6. Date date = DateTimeUtils.format(str);
  7. System.out.println(str+" => "+DateTimeUtils.format(date));
  8. }
  9. }

打印结果

</>复制代码

  1. 2019 => 2019-01-01 00:00:00
  2. 2019-07 => 2019-07-01 00:00:00
  3. 2019-07-07 => 2019-07-07 00:00:00
  4. 2019-07-07 11 => 2019-07-07 11:00:00
  5. 2019-07-07 11:22 => 2019-07-07 11:22:00
  6. 2019-07-07 11:22:11 => 2019-07-07 11:22:11
  7. 20191107日 => 2019-11-07 00:00:00
  8. 2019110712时 => 2019-11-07 12:00:00
1.4、某天开始时间:getDayStartTime(param)

未传参数返回当天开始时间,传入正数返回当天之后第N天的开始时间,传入负数返回当天之前第N天的开始时间。

</>复制代码

  1. @Test
  2. public void getDayStartTime() throws ParseException {
  3. //当天开始时间
  4. Date start1 = DateTimeUtils.getDayStartTime();
  5. String start1Str = DateTimeUtils.format(start1);
  6. //某天开始时间
  7. Date start2 = DateTimeUtils.format("2019-07-07 12:22:22");
  8. Date start2date = DateTimeUtils.getDayStartTime(start2);
  9. String start2Str = DateTimeUtils.format(start2date);
  10. //30天后的开始时间
  11. Date start3 = DateTimeUtils.getDayStartTime(30);
  12. String start3Str = DateTimeUtils.format(start3);
  13. //30天前的开始时间
  14. Date start4 = DateTimeUtils.getDayStartTime(-30);
  15. String start4Str = DateTimeUtils.format(start4);
  16. System.out.println("当天开始时间:"+start1Str);
  17. System.out.println("某天开始时间:"+start2Str);
  18. System.out.println("30天后的开始时间:"+start3Str);
  19. System.out.println("30天前的开始时间:"+start4Str);
  20. }

打印结果

</>复制代码

  1. 当天开始时间:2019-07-08 00:00:00
  2. 某天开始时间:2019-07-07 00:00:00
  3. 30天后的开始时间:2019-08-07 00:00:00
  4. 30天前的开始时间:2019-06-08 00:00:00
1.5、某周开始时间:getWeekStartTime(param)

未传参数返回本周开始时间,传入正数返回本周之后第N周的开始时间,传入负数返回本周之前第N周的开始时间。

</>复制代码

  1. @Test
  2. public void getWeekStartTime(){
  3. //本周开始时间
  4. Date start1 = DateTimeUtils.getWeekStartTime();
  5. String start1Str = DateTimeUtils.format(start1);
  6. System.out.println("本周开始时间:"+start1Str);
  7. //上周的开始时间
  8. Date start3 = DateTimeUtils.getWeekStartTime(1);
  9. String start3Str = DateTimeUtils.format(start3);
  10. System.out.println("上周的开始时间:"+start3Str);
  11. //下周的开始时间
  12. Date start4 = DateTimeUtils.getWeekStartTime(-1);
  13. String start4Str = DateTimeUtils.format(start4);
  14. System.out.println("下周的开始时间:"+start4Str);
  15. }

打印结果

</>复制代码

  1. 本周开始时间:2019-07-08 00:00:00
  2. 上周的开始时间:2019-07-01 00:00:00
  3. 下周的开始时间:2019-07-15 00:00:00
1.6、某月开始时间:getMonthStartTime(param)

未传参数返回本月开始时间,传入正数返回本月之后第N月的开始时间,传入负数返回本月之前第N月的开始时间。

</>复制代码

  1. @Test
  2. public void getMonthStartTime(){
  3. //本月开始时间
  4. Date start1 = DateTimeUtils.getMonthStartTime();
  5. String start1Str = DateTimeUtils.format(start1);
  6. System.out.println("本月开始时间:"+start1Str);
  7. //上月的开始时间
  8. Date start3 = DateTimeUtils.getMonthStartTime(1);
  9. String start3Str = DateTimeUtils.format(start3);
  10. System.out.println("上月的开始时间:"+start3Str);
  11. //下月的开始时间
  12. Date start4 = DateTimeUtils.getMonthStartTime(-1);
  13. String start4Str = DateTimeUtils.format(start4);
  14. System.out.println("下月的开始时间:"+start4Str);
  15. }

打印结果

</>复制代码

  1. 本月开始时间:2019-07-01 00:00:00
  2. 上月的开始时间:2019-08-01 00:00:00
  3. 下月的开始时间:2019-06-01 00:00:00
1.7、某季度开始时间:getMonthStartTime(param)

未传参数返回本季度开始时间,传入正数返回本季度之后第N季度的开始时间,传入负数返回本季度之前第N季度的开始时间。

</>复制代码

  1. @Test
  2. public void getQuarterStartTime(){
  3. //本季度开始时间
  4. Date start1 = DateTimeUtils.getQuarterStartTime();
  5. String start1Str = DateTimeUtils.format(start1);
  6. System.out.println("本季度开始时间:"+start1Str);
  7. //上季度的开始时间
  8. Date start3 = DateTimeUtils.getQuarterStartTime(-1);
  9. String start3Str = DateTimeUtils.format(start3);
  10. System.out.println("上季度的开始时间:"+start3Str);
  11. //下季度的开始时间
  12. Date start4 = DateTimeUtils.getQuarterStartTime(1);
  13. String start4Str = DateTimeUtils.format(start4);
  14. System.out.println("下季度的开始时间:"+start4Str);
  15. }

打印结果

</>复制代码

  1. 本季度开始时间:2019-07-01 00:00:00
  2. 上季度的开始时间:2019-04-01 00:00:00
  3. 下季度的开始时间:2019-10-01 00:00:00
1.7、某季度开始时间:getMonthStartTime(param)

未传参数返回本季度开始时间,传入正数返回本季度之后第N季度的开始时间,传入负数返回本季度之前第N季度的开始时间。

</>复制代码

  1. @Test
  2. public void getQuarterStartTime(){
  3. //本季度开始时间
  4. Date start1 = DateTimeUtils.getQuarterStartTime();
  5. String start1Str = DateTimeUtils.format(start1);
  6. System.out.println("本季度开始时间:"+start1Str);
  7. //上季度的开始时间
  8. Date start3 = DateTimeUtils.getQuarterStartTime(-1);
  9. String start3Str = DateTimeUtils.format(start3);
  10. System.out.println("上季度的开始时间:"+start3Str);
  11. //下季度的开始时间
  12. Date start4 = DateTimeUtils.getQuarterStartTime(1);
  13. String start4Str = DateTimeUtils.format(start4);
  14. System.out.println("下季度的开始时间:"+start4Str);
  15. }

打印结果

</>复制代码

  1. 本季度开始时间:2019-07-01 00:00:00
  2. 上季度的开始时间:2019-04-01 00:00:00
  3. 下季度的开始时间:2019-10-01 00:00:00
1.8、某年开始时间:getYearStartTime(param)

未传参数返回本年开始时间,传入正数返回本年之后第N年的开始时间,传入负数返回本年之前第N年的开始时间。

</>复制代码

  1. @Test
  2. public void getYearStartTime(){
  3. //本季度开始时间
  4. Date start1 = DateTimeUtils.getYearStartTime();
  5. String start1Str = DateTimeUtils.format(start1);
  6. System.out.println("本年开始时间:"+start1Str);
  7. //上季度的开始时间
  8. Date start3 = DateTimeUtils.getYearStartTime(-1);
  9. String start3Str = DateTimeUtils.format(start3);
  10. System.out.println("上年的开始时间:"+start3Str);
  11. //下季度的开始时间
  12. Date start4 = DateTimeUtils.getYearStartTime(1);
  13. String start4Str = DateTimeUtils.format(start4);
  14. System.out.println("下年的开始时间:"+start4Str);
  15. }

打印结果

</>复制代码

  1. 本年开始时间:2019-01-01 00:00:00
  2. 上年的开始时间:2018-01-01 00:00:00
  3. 下年的开始时间:2020-01-01 00:00:00

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75234.html

相关文章

  • 不同浏览器下的时间式化问题

    摘要:获得某月的天数获得本季度的开始月份获得今天之前的日期获得今天之后的日期获得本周的开始日期获得本周的结束日期获得上周的开始日期获得上周的结束日期获得本月的开始日期获得本月的结束日期获得本季度的开始日期获得本季度的结束日期 最近项目中遇到一个问题, 提交后的时间后台会返回2018-01-05T17:32:03这样的一个时间格式, 在展示的是则只需要展示2018-01-05. 这种需求应该有...

    channg 评论0 收藏0
  • 刨刨 Carbon API

    摘要:介绍是对模块的二次扩展提供时间格式化,时间计算的功能官方主页为地址为文件结构目录描述源文件源文件类的二次扩展类主要用于时差计算类的二次扩展类提供时间计算,格式化输出的功能自定义异常文件夹语言本地化文件夹类的方法会用到 介绍 Carbon是对PHP DateTime模块的二次扩展;提供时间格式化,时间计算的功能; 官方主页为 http://carbon.nesbot.com/; Git...

    Yuqi 评论0 收藏0
  • 时间式化及操作(moment.js篇)

    摘要:在里面全局使用引入使用中文时间其他地方调用的方法获取当前时间返回当前时间时间对象返回当前时间毫秒数返回结果格式化当前时间格式化时间戳以秒为单位格式化时间戳以毫秒为单位原生对象同对象相互转换转换为对象转换为对象当前时间取值操 # moment.js ## 在vue里面全局使用 main.js // 引入moment import moment from moment import mom...

    Forelax 评论0 收藏0
  • python日期时间处理总结

    摘要:用了一段时间的开发项目,也是第一次用来开发项目,所有有许多相关的知识点需要总结,本文所介绍的的日期时间处理就是最近用到的,希望对各位有所帮助,也同时作为自己的笔记储存。提供了等模块用于处理日期和时间,较为常用的还是模块。 用了一段时间的django开发web项目,也是第一次用python来开发项目,所有有许多相关的知识点需要总结,本文所介绍的python的日期时间处理就是最近用到的,希...

    DoINsiSt 评论0 收藏0
  • PHP实现 今天、昨天、上周、 数据统计功能

    摘要:应用场景按今天昨天上周本周本月统计某个人发布文章数量原理分析假设文章表里有一个字段存储创建文章时间戳,比如说今天那么查询条件为实现方案根据以上分析,需要知道今日开始时间戳和结束时间戳那么昨天上周本周也类似。 应用场景 按今天、昨天、上周、本周、本月 统计某个人发布文章数量 原理分析 假设 文章表里 有一个字段存储 创建文章时间戳(cdate),比如说 今天(2016-11-8) 那么查...

    isaced 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<