时间处理 joda.time.DateTime
简介
joda时间处理,处理时间非常便捷,在这个基础上进行简单的封装可以完成很多事情,这里列出Java的一些实现。这里使用的日期输入都支持整型(YYYYMMDD)和字符串(YYYY-MM-DD)两种输入格式
依赖
<dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.1</version></dependency>
org.joda.time.DateTime;// 这个对象和 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参数写反了话结果就是负数 |
当前时间格式化后输出
String s = new DateTime().toString("yyyy-MM-dd");System.out.println(s);
给定的时间进行格式化
public void testJodaDateUtil2(){String s = "2022-11-22";DateTime dateTime = new DateTime(s);// EE 表示星期// Locale.CHINESE 表示中国的时区String s1 = dateTime.toString("yyyy-MM-dd HH:mm:ss:sss EE", Locale.CHINESE);System.out.println(s1);}
根据日期获得星期几
public void testJodaDateUtil3(){DateTime dateTime = new DateTime();// 内部类 dayOfWeek() 根据日期获得星期DateTime.Property property = dateTime.dayOfWeek();int i = property.get();System.out.println("星期"+i);}
DateTime dateTime = new DateTime();DateTime.Property property = null;int i;// 获取今年过去了多少天property = dateTime.dayOfYear();i = property.get();System.out.println("今年过去了"+i+"天");property = dateTime.dayOfMonth();i = property.get();System.out.println("这个月过去了"+i+"天");property = dateTime.dayOfWeek();i = property.get();System.out.println("今天是星期"+i);property = dateTime.hourOfDay();System.out.println("今天过去了"+property.get()+"小时");property = dateTime.minuteOfHour();System.out.println("现在分钟数"+ property.get());property = dateTime.centuryOfEra();System.out.println("世纪"+property.get());
