时间处理 joda.time.DateTime

简介

joda时间处理,处理时间非常便捷,在这个基础上进行简单的封装可以完成很多事情,这里列出Java的一些实现。这里使用的日期输入都支持整型(YYYYMMDD)和字符串(YYYY-MM-DD)两种输入格式

依赖

  1. <dependency>
  2. <groupId>joda-time</groupId>
  3. <artifactId>joda-time</artifactId>
  4. <version>2.10.1</version>
  5. </dependency>
  1. org.joda.time.DateTime;
  2. // 这个对象和 date 对象一样,就是当前时间
函数名 功能 描述
toDateTimeISO 转为日期标准ISO8601格式 将YYYYMMDD,YYYY/MM/DD,YYYY%MM%DD,DD%MM%YYYY,DD/MM/YYYY等格式转为标准ISO格式YYYY-MM-DD
dayOfWeek 根据日期返回周几
getDeltaNaturalWeek 返回上N个自然周的周一与周日 delta支持负数
getDeltaNaturalMonth 返回上N个自然月的1号和最后一天 delta支持负数
getDeltaWeekRange 返回上delta个周的自然周的第一天和上一周的最后一天 注意与 getDeltaNaturalWeek 的区别 delta支持负数
getDeltaMonthRange 返回上delta个月的自然月的第一天和上月的最后一天 注意与getDeltaNaturalMonth的区别 delta支持负数
getDeltaMonthCut 返回上delta个月的月份形式 delta支持负数
getDeltaDay 返回具体日期 delta支持负数
getRangeDays 从开始日期和结合日期获取日期列表 delta支持负数
getDaysOfMonth 获取制定月份的所有日期 month 支持 YYYYMM 或 YYYYMMDD
getRangeMonths 从开始日期和结束日期获取月份列表
getWeekGroup 从开始日期和结束日期获取周中和周末的元组
getDelta 查看两个日期相差多少天 如果startTime和endTime参数写反了话结果就是负数

当前时间格式化后输出

  1. String s = new DateTime().toString("yyyy-MM-dd");
  2. System.out.println(s);

给定的时间进行格式化

  1. public void testJodaDateUtil2(){
  2. String s = "2022-11-22";
  3. DateTime dateTime = new DateTime(s);
  4. // EE 表示星期
  5. // Locale.CHINESE 表示中国的时区
  6. String s1 = dateTime.toString("yyyy-MM-dd HH:mm:ss:sss EE", Locale.CHINESE);
  7. System.out.println(s1);
  8. }

根据日期获得星期几

  1. public void testJodaDateUtil3(){
  2. DateTime dateTime = new DateTime();
  3. // 内部类 dayOfWeek() 根据日期获得星期
  4. DateTime.Property property = dateTime.dayOfWeek();
  5. int i = property.get();
  6. System.out.println("星期"+i);
  7. }
  1. DateTime dateTime = new DateTime();
  2. DateTime.Property property = null;
  3. int i;
  4. // 获取今年过去了多少天
  5. property = dateTime.dayOfYear();
  6. i = property.get();
  7. System.out.println("今年过去了"+i+"天");
  8. property = dateTime.dayOfMonth();
  9. i = property.get();
  10. System.out.println("这个月过去了"+i+"天");
  11. property = dateTime.dayOfWeek();
  12. i = property.get();
  13. System.out.println("今天是星期"+i);
  14. property = dateTime.hourOfDay();
  15. System.out.println("今天过去了"+property.get()+"小时");
  16. property = dateTime.minuteOfHour();
  17. System.out.println("现在分钟数"+ property.get());
  18. property = dateTime.centuryOfEra();
  19. System.out.println("世纪"+property.get());