**

Joda-time

**

  • 导入maven 工程jar包
<dependency>  <groupId>joda-time</groupId>  <artifactId>joda-time</artifactId>  <version>2.9.2</version>  </dependency>
  • 方法使用案例
//方法一:取系统点间
DateTime dt1 = new DateTime();
//方法二:通过java.util.Date对象生成
DateTime dt2 = new  DateTime(new Date());
//方法三:指定年月日点分秒生成(参数依次是:年,月,日,时,分,秒,毫秒)
static DateTime dt3 = new DateTime(2016, 6, 15, 14, 47, 0, 0);
//方法四:ISO8601形式生成
DateTime dt4 = new DateTime("2016-06-15");
DateTime dt5 = new DateTime("2016-06-20T13:14:00");
//只需要年月日的时候
LocalDate ld1 = new LocalDate(2016, 6, 15);
//只需要时分秒毫秒的时候
LocalTime localTime = new LocalTime(13, 30, 26, 0);// 1:30:26PM    DateTime dt = new DateTime();
int year = dt.getYear();//年
int month = dt.getMonthOfYear();//月
int day = dt.getDayOfMonth(); //天
int day1 = dt.getDayOfWeek();//天
int day2 = dt.getDayOfYear();//天
int week = dt.getDayOfWeek(); //星期
int hour = dt.getHourOfDay();   //点
int min = dt.getMinuteOfHour();  //分
int sec = dt.getSecondOfMinute();  //秒
int msec = dt.getMillisOfSecond();  //毫秒      @Override
public String toString() {  System.out.println(year+","+month+","+day+","+day1+","+day2+","+week+","+hour+","+min+","+sec+","+msec);      return "";
}
public void week(){  //星期  DateTime dts = new DateTime();   switch (dts.getDayOfWeek()) {  case DateTimeConstants.SUNDAY:  System.out.println("星期日");  break;  case DateTimeConstants.MONDAY:  System.out.println("星期一");  break;  case DateTimeConstants.TUESDAY:  System.out.println("星期二");  break;  case DateTimeConstants.WEDNESDAY:  System.out.println("星期三");    break;  case DateTimeConstants.THURSDAY:  System.out.println("星期四");  break;  case DateTimeConstants.FRIDAY:  System.out.println("星期五");  break;  case DateTimeConstants.SATURDAY:  System.out.println("星期6");  default:  break;  }  }
DateTime dt01 = new DateTime();    //昨天
DateTime yesterday = dt01.minusDays(1);
//明天
DateTime tomorrow = dt01.plusDays(1);
//1个月前
DateTime before1month = dt01.minusMonths(1);
//3个月后
DateTime after3month = dt01.plusMonths(3);
//2年前
DateTime before2year = dt01.minusYears(2);
//5年后
DateTime after5year = dt01.plusYears(5);   DateTime d1 = new DateTime("2012-02-01");
DateTime d2 = new DateTime("2012-05-01");    //和系统时间比
boolean b1 = d1.isAfterNow();
boolean b2 = d1.isBeforeNow();
boolean b3 = d1.isEqualNow();    //和其他日期比
boolean f1 = d1.isAfter(d2);
boolean f2 = d1.isBefore(d2);
boolean f3 = d1.isEqual(d2);    DateTime begin = new DateTime("2012-02-01");
DateTime end = new DateTime("2012-05-01");    //计算区间毫秒数
Duration d = new Duration(begin, end);
long time = d.getMillis();    //计算区间天数
Period p = new Period(begin, end, PeriodType.days());
int days = p.getDays();    //计算特定日期是否在该区间内
Interval i = new Interval(begin, end);
boolean contained = i.contains(new DateTime("2012-03-01"));    //默认设置为日本时间    DateTime dt001 = new DateTime();    //伦敦时间
DateTime dt002 = new DateTime(DateTimeZone.forID("Europe/London"));
//月末日期
DateTime lastday = dt.dayOfMonth().withMaximumValue();    //90天后那周的周一
DateTime firstday = dt.plusDays(90).dayOfWeek().withMinimumValue();
  • DateUtils 工具类:JodaTime 对时间的加减 处理起来 特别方便 ,快速。
/** * 获取当前系统时间 * @return yyyy-MM-dd HH:mm:ss */
public static String getCurrentTime() {  DateTime dt = new DateTime();  String time = dt.toString(FORMAT_TIME);  return time;
}  /** * 获取系统当前时间按照指定格式返回 * @param pattern  yyyy/MM/dd hh:mm:a * @return */
public static String getCurrentTimePattern(String pattern) {  DateTime dt = new DateTime();  String time = dt.toString(pattern);  return time;
}  /** * 获取当前日期 * @return */
public static String getCurrentDate() {  DateTime dt = new DateTime();  String date = dt.toString(FORTER_DATE);  return date;
}  /** * 获取当前日期按照指定格式 * @param pattern * @return */
public static String getCurrentDatePattern(String pattern) {  DateTime dt = new DateTime();  String date = dt.toString(pattern);  return date;
}  /** * 按照时区转换时间 * @param date * @param timeZone 时区 * @param parrten * @return */
@Nullable
public static String format(Date date, TimeZone timeZone, String parrten) {  if (date == null) {  return null;  }  SimpleDateFormat sdf = new SimpleDateFormat(parrten);  sdf.setTimeZone(timeZone);  return sdf.format(date);
}  /** * 获取指定时间 * @param year 年 * @param month 月 * @param day 天 * @param hour 小时 * @param minute 分钟 * @param seconds 秒 * @return yyyy-MM-dd HH:mm:ss */
public static String getPointTime(Integer year, Integer month, Integer day, Integer hour, Integer minute, Integer seconds) {  DateTime dt = new DateTime(year, month, day, hour, minute, seconds);  String date = dt.toString(FORMAT_TIME);  return date;
}  /** * * @param year 年 * @param month 月 * @param day 天 * @param hour 小时 * @param minute 分钟 * @param seconds 秒 * @param parrten 自定义格式 * @return parrten */
public static String getPointTimePattern(Integer year, Integer month, Integer day, Integer hour, Integer minute, Integer seconds, String parrten) {  DateTime dt = new DateTime(year, month, day, hour, minute, seconds);  String date = dt.toString(parrten);  return date;
}  /** * 获取指定日期 * @param year * @param month * @param day * @return */
public static String getPointDate(Integer year, Integer month, Integer day) {  LocalDate dt = new LocalDate(year, month, day);  String date = dt.toString(FORTER_DATE);  return date;
}  /** * 获取指定日期 返回指定格式 * @param year * @param month * @param day * @param parrten * @return */
public static String getPointDatParrten(Integer year, Integer month, Integer day, String parrten) {  LocalDate dt = new LocalDate(year, month, day);  String date = dt.toString(parrten);  return date;
}  /** * 获取当前是一周星期几 * @return */
public static String getWeek() {  DateTime dts = new DateTime();  String week = null;  switch (dts.getDayOfWeek()) {  case DateTimeConstants.SUNDAY:  week = "星期日";  break;  case DateTimeConstants.MONDAY:  week = "星期一";  break;  case DateTimeConstants.TUESDAY:  week = "星期二";  break;  case DateTimeConstants.WEDNESDAY:  week = "星期三";  break;  case DateTimeConstants.THURSDAY:  week = "星期四";  break;  case DateTimeConstants.FRIDAY:  week = "星期五";  break;  case DateTimeConstants.SATURDAY:  week = "星期六";  default:  break;  }  return week;
}  /** * 获取指定时间是一周的星期几 * @param year * @param month * @param day * @return */
public static String getWeekPoint(Integer year, Integer month, Integer day) {  LocalDate dts = new LocalDate(year, month, day);  String week = null;  switch (dts.getDayOfWeek()) {  case DateTimeConstants.SUNDAY:  week = "星期日";  break;  case DateTimeConstants.MONDAY:  week = "星期一";  break;  case DateTimeConstants.TUESDAY:  week = "星期二";  break;  case DateTimeConstants.WEDNESDAY:  week = "星期三";  break;  case DateTimeConstants.THURSDAY:  week = "星期四";  break;  case DateTimeConstants.FRIDAY:  week = "星期五";  break;  case DateTimeConstants.SATURDAY:  week = "星期六";  break;  default:  break;  }  return week;
}  /** * 格式化日期 * @param date * @return yyyy-MM-dd HH:mm:ss */
@Nullable
public static String format(Date date) {  if (date == null) {  return null;  }  SimpleDateFormat format = new SimpleDateFormat(FORMAT_TIME);  return format.format(date);
}  /** * 格式化日期字符串 * @param date 日期 * @param pattern 日期格式 * @return */
@Nullable
public static String format(Date date, String pattern) {  if (date == null) {  return null;  }  SimpleDateFormat format = new SimpleDateFormat(pattern);  return format.format(date);
}  /** * 解析日期 * @param date 日期字符串 * @param pattern 日期格式 * @return */
@Nullable
public static Date parse(String date, String pattern) {  if (date == null) {  return null;  }  Date resultDate = null;  try {  resultDate = new SimpleDateFormat(pattern).parse(date);  } catch (ParseException e) {  }  return resultDate;
}  /** * 解析日期yyyy-MM-dd HH:mm:ss * @param date 日期字符串 * @return */
@Nullable
public static Date parse(String date) {  if (date == null) {  return null;  }  try {  return new SimpleDateFormat(FORMAT_TIME).parse(date);  } catch (ParseException e) {  return null;  }
}  /** * 解析日期 yyyy-MM-dd HH:mm:ss * @param timestamp * @return */
public static String format(Long timestamp, String pattern) {  String dateStr = "";  if (null == timestamp || timestamp.longValue() < 0) {  return dateStr;  }  try {  Date date = new Date(timestamp);  SimpleDateFormat format = new SimpleDateFormat(pattern);  dateStr = format.format(date);  } catch (Exception e) {  // ignore  }  return dateStr;
}  /** * 解析日期 yyyy-MM-dd HH:mm:ss * @param timestamp * @return */
public static String format(Long timestamp) {  String dateStr = "";  if (null == timestamp || timestamp.longValue() < 0) {  return dateStr;  }  try {  Date date = new Date(timestamp);  SimpleDateFormat format = new SimpleDateFormat(FORMAT_TIME);  dateStr = format.format(date);  } catch (Exception e) {  // ignore  }  return dateStr;
}  /** *获取当前时间前几天时间,按指定格式返回 * @param days * @return */
public static String forwardDay(Integer days, String format) {  DateTime dt = new DateTime();  DateTime y = dt.minusDays(days);  return y.toString(format);
}  /** *获取当前时间前几天时间 * @param days * @return */
public static Date forwardDay(Integer days) {  DateTime dt = new DateTime();  DateTime y = dt.minusDays(days);  return y.toDate();
}  /** * 获取指定时间之后或者之前的某一天00:00:00 默认返回当天 * @param days * @return */
public static Date day00(Integer days, String date, String zimeZone) throws Throwable {  DateTime dt;  TimeZone timeZone;  try {  if (StringUtils.isBlank(zimeZone)) {  timeZone = TimeZone.getDefault();  } else {  timeZone = TimeZone.getTimeZone(zimeZone);  }  if (StringUtils.isBlank(date)) {  dt = new DateTime().withZone(DateTimeZone.forTimeZone(timeZone)).toLocalDateTime().toDateTime();  } else {  dt = new DateTime(date).withZone(DateTimeZone.forTimeZone(timeZone)).toLocalDateTime().toDateTime();  }  } catch (Exception e) {  throw new Throwable(e);  }  DateTime y = dt.minusDays(days).withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0);  return y.toDate();
}  /** *获取指定时间之后或者之前的某一天23:59:59 默认返回当天 * @param days 偏移量 * @return */
public static Date day59(Integer days, String date, String zimeZone) throws Throwable {  DateTime dt;  TimeZone timeZone;  try {  if (StringUtils.isBlank(zimeZone)) {  timeZone = TimeZone.getDefault();  } else {  timeZone = TimeZone.getTimeZone(zimeZone);  }  if (StringUtils.isBlank(date)) {  dt = new DateTime().withZone(DateTimeZone.forTimeZone(timeZone)).toLocalDateTime().toDateTime();  } else {  dt = new DateTime(date).withZone(DateTimeZone.forTimeZone(timeZone)).toLocalDateTime().toDateTime();  }  } catch (Exception e) {  throw new Throwable(e);  }  DateTime y = dt.minusDays(days).withHourOfDay(23).withMinuteOfHour(59).withSecondOfMinute(59);  return y.toDate();
}  /** * 计算两个时间相差多少天 * @param startDate * @param endDate * @return */
@Nullable
public static Integer diffDay(Date startDate, Date endDate) {  if (startDate == null || endDate == null) {  return null;  }  DateTime dt1 = new DateTime(startDate);  DateTime dt2 = new DateTime(endDate);  int day = Days.daysBetween(dt1, dt2).getDays();  return Math.abs(day);
}  /** * 获取某月之前,之后某一个月最后一天,24:59:59 * @return */
public static Date lastDay(Date date, Integer month) {  DateTime dt1;  if (month == null) {  month = 0;  }  if (date == null) {  dt1 = new DateTime().minusMonths(month);  } else {  dt1 = new DateTime(date).minusMonths(month);  }  DateTime lastDay = dt1.dayOfMonth().withMaximumValue().  withHourOfDay(23).withMinuteOfHour(59).withSecondOfMinute(59);  return lastDay.toDate();
}  /** *获取某月月之前,之后某一个月第一天,00:00:00 * @return */
public static Date firstDay(Date date, Integer month) {  DateTime dt1;  if (month == null) {  month = 0;  }  if (date == null) {  dt1 = new DateTime().minusMonths(month);  } else {  dt1 = new DateTime(date).minusMonths(month);  }  DateTime lastDay = dt1.dayOfMonth().withMinimumValue().  withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0);  return lastDay.toDate();
}  public static Date addDay(Date date, int offset) {  DateTime dt1;  if (date == null) {  dt1 = new DateTime().plusDays(offset);  return dt1.toDate();  }  dt1 = new DateTime(date).plusDays(offset);  return dt1.toDate();  }  /** * 传入日期时间与当前系统日期时间的比较, * 若日期相同,则根据时分秒来返回 , * 否则返回具体日期 * @return 日期或者 xx小时前||xx分钟前||xx秒前 */
@Nullable
public static String getNewUpdateDateString(Date now, Date createDate) {  if (now == null || createDate == null) {  return null;  }  Long time = (now.getTime() - createDate.getTime());  if (time > (24 * 60 * 60 * 1000)) {  return time / (24 * 60 * 60 * 1000) + "天前";  } else if (time > (60 * 60 * 1000)) {  return time / (60 * 60 * 1000) + "小时前";  } else if (time > (60 * 1000)) {  return time / (60 * 1000) + "分钟前";  } else if (time >= 1000) {  return time / 1000 + "秒前";  }  return "刚刚";
}

Joda-Time 工具类的使用相关推荐

  1. apache commons常用工具类

    1.有些情况下,Arrays满足不到你对数组的操作?不要紧,ArrayUtils帮你 ArrayUtils public class TestMain {  public static void ma ...

  2. 第二章 DateTime工具类

    项目中经常需要将DateTime转化成各种格式的String类型,或将各种类型的String转为DateTime类型. 本文提供一个DateTime与String的转换工具类: import org. ...

  3. 工具类集和_gblfy版本

    日常工具类集和 gblfy版本 Cookie CookieUtil.java BigDecimal BigDecimalUtil.java 日期 DateTimeUtil.java FTP FTPUt ...

  4. java 时间类 joda_Java Joda-Time 处理时间工具类(JDK1.7以上)

    import org.joda.time.*;importorg.joda.time.format.DateTimeFormat;importorg.joda.time.format.DateTime ...

  5. 分享一个Joda-Time日期时间工具类

    写在前面 在JDK1.8之前,处理日期和时间的方式比较单一,Java中提供了Calendar来处理日期,但是过程较为繁琐. 但是在JDK1.8之后,Java更新了time包提供了LocalDate,L ...

  6. 仅存放常用的工具类,自用

    List item 目录 MultipartFile 转 File 上传文件至项目所在位置 树型结构工具类 Description: 集合工具类 日期工具类 JSON工具类,在阿里的fastjson基 ...

  7. java publicdatautil_Java数据类型判断工具类DataTypeUtil

    背景 之前要写一个项目,根据配置以及前端入参来调用具体的接口执行对应的任务,需要校验前端的入参是否是指定的数据类型,防止调用后续接口时出现异常. 然后看了下JAVA自带的方法以及Spring.Apac ...

  8. DateUtils 工具类:获取指定月份第一天时间,最后一天时间

    获取指定月份第一天时间 getMinDateMonth ,最后一天时间 getMaxDateMonth ,将时间区间按照月份分组,拆分多个片段 getDateSplitMonth 指定月份的下个月 g ...

  9. java中常用的日期工具类

    java中常用的日期工具类 日期相关的类: package net.yto.ofclacct.core.util;import java.text.ParseException; import jav ...

  10. JAVA日期转换工具类

    java中经常会用到日期的转换,所有自己整理了一套日期转换的工具类,方便使用. 首先导入 <dependency><groupId>joda-time</groupId& ...

最新文章

  1. 数十名工程师作战5天,阿里达摩院连夜研发智能疫情机器人
  2. 上周热点回顾(12.18-12.24)
  3. Counting Bits(Difficulty: Medium)
  4. 下行物理信道rs_这些CH结尾的LTE物理信道傻傻分不清楚?快来看这篇文章!
  5. linux fdisk 4k,linux查看硬盘4K对齐方法
  6. java 2 swing_Java Swing2 基本登錄框
  7. C++中this指针
  8. 斐讯盒子T1_【YYF固件】无语音实用版刷机固件及教程分享
  9. uva 10247 - Complete Tree Labeling
  10. 怎样使用计算机定时关机,win10怎么定时关机?
  11. 17-【istio】-【流量管理】-【流量管理案例篇】针对TCP流量
  12. 【通信原理】实验七、基于Matlab的均匀量化和非均匀量化
  13. elementUI table表格合并相同的内容
  14. 曾善美一女大学生的创业之路
  15. Win10系统Ping端口及利用telnet命令Ping 端口
  16. 【智能制造】生产异常情况的处理流程
  17. 省时省力的PDF编辑技巧,不会实在可惜
  18. seo要学什么东西?
  19. WIKI--维基百科
  20. 【Java进阶营】今天面了一个大学生:这82道SpringBoot面试题都答不上来?还想进大厂?

热门文章

  1. 音视频基础——libyuv格式转换
  2. IAR 修改工程名称
  3. 第五章.MyBatis高级映射
  4. RoboMaster机甲大师——视觉组——ubuntu开机自启动脚本分析
  5. 【学习笔记16】JavaScript函数封装习题
  6. 计算机毕业设计Java医院药品管理系统(系统+源码+mysql数据库+Lw文档)
  7. 鸿蒙系统是开放系统还是封闭系统,鸿蒙系统三挑战:应用如何兼容,生态怎么搭建,开放还是闭合...
  8. MDX基本概念和语法
  9. win7桌面文件夹删不掉
  10. oracle结束关闭数据,谈谈Oracle数据库的关闭