【Hutool】Hutool工具类之日期时间工具——DateUtil
2017-08-10 20:16
701 查看
一、用于取代Date对象的DateTime对象
再也不用Date SimpleDateFormat Calendar之间倒腾来倒腾去了!日期创建-获取-操作一步到位!如果JDK版本更新到了8及以上,不妨尝试新的时间日期API(参见JDK8新特性随笔篇)
学习一个类的基本方式是了解其获取方式(构造器),与常用方法(API)
以下是引用自官网示例的Demo:
public static void main(String[] args) { DateTime dateTime = new DateTime("2017-9-14 21:55:18", "yyyy-MM-dd HH:mm:ss"); // 获取日期成员(年、季度、月、日) int year = dateTime.year();// 年 System.out.println("year = " + year); int season = dateTime.season();// 季度 System.out.println("season = " + season); int month = dateTime.month();// 月份 System.out.println("month = " + month); int dayOfWeek = dateTime.dayOfWeek();// 周几 System.out.println("dayOfWeek = " + dayOfWeek); int dayOfMonth = dateTime.dayOfMonth();// 此月第N天 System.out.println("dayOfMonth = " + dayOfMonth); // 调整日期时间 DateTime dateTime1 = dateTime.offset(DateField.DAY_OF_MONTH, -1); System.out.println(dateTime1.toString()); }
结果:
二、强大的日期时间工具类——DateUtil
1.解析——字符串解析为日期public static void main(String[] args) { // 日期字符串请补全为2位数字 String str1 = "2017-09-14"; String str2 = "2017-09-14 21:03:01"; // 自动感应格式 Date date1 = DateUtil.parse(str1); Date date2 = DateUtil.parse(str2); System.out.println("date1:"+date1); System.out.println("date2:"+date2); // 手动设置格式(其中DateTime是可以完全替代Date的一个子类) DateTime dateTime1 = DateUtil.parse(str1, "yyyy-MM-dd"); DateTime dateTime2 = DateUtil.parse(str2, "yyyy-MM-dd HH:mm:ss"); System.out.println(dateTime1); System.out.println(dateTime2); }
2.格式化——将日期格式化为字符串
public static void main(String[] args) { // 日期字符串请补全为2位数字 String str1 = "2017-09-14"; // 自动感应格式 Date date1 = DateUtil.parse(str1); // 格式化为指定格式字符串 String s1 = DateUtil.format(date1, "yyyy年MM月dd日"); System.out.println("s1 = " + s1); // 常用格式格式化 String s2 = DateUtil.formatDate(date1); System.out.println("s2 = " + s2); }
结果:
3.获取日期成员(对比DateTime的操作)
public static void main(String[] args) { // 日期字符串请补全为2位数字 String str1 = "2017-09-14"; // 自动感应格式 Date date1 = DateUtil.parse(str1); // 获取指定日期成员(通过DateTime同样可以完成) int year = DateUtil.year(date1); System.out.println("year = " + year); int dayOfMonth = DateUtil.dayOfMonth(date1); System.out.println("dayOfMonth = " + dayOfMonth); }
结果:
4.日期时间偏移
public static void main(String[] args) { // 日期字符串请补全为2位数字 String str1 = "2017-09-14"; // 自动感应格式 Date date1 = DateUtil.parse(str1); // 日期时间偏移 DateTime dateTime = DateUtil.offset(date1, DateField.HOUR_OF_DAY, 5); System.out.println("dateTime = " + dateTime); DateTime dateTime1 = DateUtil.offsetDay(date1, 1); System.out.println("dateTime1 = " + dateTime1); }
结果:
针对当前时间的简化偏移操作:
public static void main(String[] args) { // 当前时间的简化偏移方法 String now = DateUtil.now(); System.out.println("now = " + now); // 昨天 DateTime yesterday = DateUtil.yesterday(); System.out.println("yesterday = " + yesterday); // 明天 DateTime tomorrow = DateUtil.tomorrow(); System.out.println("tomorrow = " + tomorrow); // 上周 DateTime lastWeek = DateUtil.lastWeek(); System.out.println("lastWeek = " + lastWeek); // 下月 DateTime nextMonth = DateUtil.nextMonth(); System.out.println("nextMonth = " + nextMonth); }
结果:
5.其它:
public static void main(String[] args) { // 距今年龄 int age = DateUtil.ageOfNow("2008-12-22"); System.out.println("age = " + age); // 是否闰年 boolean leapYear = DateUtil.isLeapYear(2017); System.out.println("leapYear = " + leapYear); }
结果:
相关文章推荐
- 关于日期时间操作工具类DateUtil(二) -----对java.sql.Timestamp 的操作.
- 关于日期时间操作工具类DateUtil(三) -----对系统时间的操作.
- 关于日期时间操作工具类DateUtil(一)-----对java.util.Date 的操作.
- 日期时间DateUtil-java工具类
- 【知识整理】Android 时间工具DateUtil
- java.sql.Date与java.util.Date(java.sql.Timestamp(java.util.Date.getTime())包含时间和日期)
- 工具类 util.Date 日期类
- Android 日期工具类DateUtil
- 自己做工具--js 时间戳转为日期格式封装方法date(format, timestamp)
- java.util.Date 与 java.sql.Date互转 及 字符串转换为日期时间格式
- 通用日期格式化工具类DateUtil
- Python学习:时间处理工具--dateutil两个简单用法
- Android DatePicker与TimePicker 日期时间弹出工具类
- [java]日期工具类-DateUtil
- 时间处理工具类(DateUtil)
- java日期工具类DateUtil
- [置顶] 时间日期工具类Util
- java 日期处理工具类 DateUtil 2
- Android & Java DateUtils 拿来就用 包含常用的日期和时间转换的工具
- Java中的日期转化格式DateUtil工具类