时间处理 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());