Java超级实用工具类

您所在的位置:网站首页 java中时间格式化工具类 Java超级实用工具类

Java超级实用工具类

2024-07-17 20:26| 来源: 网络整理| 查看: 265

1. 概述

本篇文章主要介绍Java开发常用的工具类,所谓工欲善其事必先利其器,有了好的工具无论是工作还是学习都会游刃有余。 本文主要介绍日期/时间处理工具类:FastDateFormat、DateFormatUtils、DateUtils。

Maven仓库地址:

org.apache.commons commons-lang3 3.11 2. FastDateFormat

FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat。因为是线程安全的,所以你可以把它作为一个类的静态字段使用。构造方法为protected,不允许直接构造它的对象,可以通过工厂方法获取。FastDateFormat之所以是线程安全的,是因为这个类是无状态的:内部的成员在构造时就完成了初始化,并在对象存活期,不提供任何API供外界修改他们。

2.1 获取实例 // 使用默认区域设置中的默认格式获取实例 public static FastDateFormat getInstance(); // 使用默认区域设置中的指定格式获取实例 public static FastDateFormat getInstance(String pattern); // 使用指定的时区和格式获取实例 public static FastDateFormat getInstance(String pattern, TimeZone timeZone); // 使用指定的格式和区域设置来获取实例 public static FastDateFormat getInstance(String pattern, Locale locale); // 使用指定的格式、时区、区域设置来获取实例 public static FastDateFormat getInstance(String pattern, TimeZone timeZone, Locale locale); // 在默认时区和默认区域设置中使用指定样式获取日期实例 public static FastDateFormat getDateInstance(int style); // 在默认时区和指定区域设置中使用指定样式获取日期实例 public static FastDateFormat getDateInstance(int style, Locale locale); // 在指定时区和默认区域设置中使用指定样式获取日期实例 public static FastDateFormat getDateInstance(int style, TimeZone timeZone); // 在指定时区和指定区域设置中使用指定样式获取日期实例 public static FastDateFormat getDateInstance(int style, TimeZone timeZone, Locale locale); // 在默认时区和默认区域设置中使用指定样式获取时间实例 public static FastDateFormat getTimeInstance(int style); // 在默认时区和指定区域设置中使用指定样式获取时间实例 public static FastDateFormat getTimeInstance(int style, Locale locale); // 在指定时区和默认区域设置中使用指定样式获取时间实例 public static FastDateFormat getTimeInstance(int style, TimeZone timeZone); // 在指定时区和指定区域设置中使用指定样式获取时间实例 public static FastDateFormat getTimeInstance(int style, TimeZone timeZone, Locale locale); // 在默认时区和默认区域设置中使用指定样式获取日期和时间实例 public static FastDateFormat getDateTimeInstance(int dateStyle, int timeStyle); // 在默认时区和指定区域设置中使用指定样式获取日期和时间实例 public static FastDateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale locale); // 在指定时区和默认区域设置中使用指定样式获取日期和时间实例 public static FastDateFormat getDateTimeInstance(int dateStyle, int timeStyle, TimeZone timeZone); // 在指定时区和指定区域设置中使用指定样式获取日期和时间实例 public static FastDateFormat getDateTimeInstance(int dateStyle, int timeStyle, TimeZone timeZone, Locale locale); 2.2 格式化 // 设置日期、日历对象的格式 public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos); // 格式化毫秒值 public String format(long millis); // 格式化日期 public String format(Date date); // 格式化日历 public String format(Calendar calendar); 2.3 获取格式化日期使用的格式 public String getPattern(); 2.4 获取格式化日期使用的时区 public TimeZone getTimeZone(); 2.5 获取格式化日期使用的区域 public Locale getLocale(); 3. DateFormatUtils

将时间转化为字符串的工具类。不可实例化对象且线程安全,依赖于FastDateFormat。

3.1 常量 // yyyy-MM-dd'T'HH:mm:ss public static final FastDateFormat ISO_8601_EXTENDED_DATETIME_FORMAT; // yyyy-MM-dd'T'HH:mm:ssZZ public static final FastDateFormat ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT; // yyyy-MM-dd public static final FastDateFormat ISO_8601_EXTENDED_DATE_FORMAT; // HH:mm:ss public static final FastDateFormat ISO_8601_EXTENDED_TIME_FORMAT; // HH:mm:ssZZ public static final FastDateFormat ISO_8601_EXTENDED_TIME_TIME_ZONE_FORMAT; // EEE, dd MMM yyyy HH:mm:ss Z public static final FastDateFormat SMTP_DATETIME_FORMAT; 3.2 格式化 // 使用UTC时区将日期/时间格式化为特定模式 public static String formatUTC(long millis, String pattern); public static String formatUTC(Date date, String pattern); // 使用UTC时区和指定区域将日期/时间格式化为特定模式 public static String formatUTC(long millis, String pattern, Locale locale); public static String formatUTC(Date date, String pattern, Locale locale); // 格式化日期/时间 public static String format(long millis, String pattern); public static String format(Date date, String pattern); public static String format(Calendar calendar, String pattern); // 按指定时区格式化日期/时间 public static String format(long millis, String pattern, TimeZone timeZone); public static String format(Date date, String pattern, TimeZone timeZone); public static String format(Calendar calendar, String pattern, TimeZone timeZone); // 按指定区域格式化日期/时间 public static String format(long millis, String pattern, Locale locale); public static String format(Date date, String pattern, Locale locale); public static String format(Calendar calendar, String pattern, Locale locale); // 按指定时区、区域格式化日期/时间 public static String format(long millis, String pattern, TimeZone timeZone, Locale locale); public static String format(Date date, String pattern, TimeZone timeZone, Locale locale); public static String format(Calendar calendar, String pattern, TimeZone timeZone, Locale locale); 4. DateUtils 4.1 常量 // 标准秒的毫秒数 1000L public static final long MILLIS_PER_SECOND; // 标准分钟的毫秒数 60000L public static final long MILLIS_PER_MINUTE; // 标准小时的毫秒数 3600000L public static final long MILLIS_PER_HOUR; // 标准天的毫秒数 86400000L public static final long MILLIS_PER_DAY; 4.2 日期/时间比对 // 检查两个日期是否在同一天,忽略时间 public static boolean isSameDay(Date date1, Date date2); public static boolean isSameDay(Calendar cal1, Calendar cal2); // 检查两个日期在时间上是否表示同一时刻,具体到毫秒值 public static boolean isSameInstant(Date date1, Date date2); public static boolean isSameInstant(Calendar cal1, Calendar cal2); // 检查两个日历对象是否表示相同的本地时间 public static boolean isSameLocalTime(Calendar cal1, Calendar cal2); 4.3 解析日期/时间字符串 // 尝试用不同的格式来解析字符串,如果都不匹配,抛出ParseException public static Date parseDate(String str, String... parsePatterns); // 按指定的区域、尝试用不同的格式来解析字符串,如果都不匹配,抛出ParseException public static Date parseDate(String str, Locale locale, String... parsePatterns); // 尝试用不同的格式来解析字符串,如果都不匹配,抛出ParseException,解析时会校验字符串的格式是否正确 public static Date parseDateStrictly(String str, String... parsePatterns); // 按指定的区域、尝试用不同的格式来解析字符串,如果都不匹配,抛出ParseException,解析时会校验字符串的格式是否正确 public static Date parseDateStrictly(String str, Locale locale, String... parsePatterns); 4.4 日期/时间操作 // 返回增加/减少的年份的日期,原日期不变 public static Date addYears(Date date, int amount); // 返回增加/减少的月份的日期,原日期不变 public static Date addMonths(Date date, int amount); // 返回增加/减少的星期的日期,原日期不变 public static Date addWeeks(Date date, int amount); // 返回增加/减少的天数的日期,原日期不变 public static Date addDays(Date date, int amount); // 返回增加/减少的小时的日期,原日期不变 public static Date addHours(Date date, int amount); // 返回增加/减少的分钟的日期,原日期不变 public static Date addMinutes(Date date, int amount); // 返回增加/减少的秒的日期,原日期不变 public static Date addSeconds(Date date, int amount); // 返回增加/减少的毫秒的日期,原日期不变 public static Date addMilliseconds(Date date, int amount); // 设置年份,返回新的对象,原对象日期不变 public static Date setYears(Date date, int amount); // 设置月份,返回新的对象,原对象日期不变 public static Date setMonths(Date date, int amount); // 设置日期,返回新的对象,原对象日期不变 public static Date setDays(Date date, int amount); // 设置小时,返回新的对象,原对象日期不变 public static Date setHours(Date date, int amount); // 设置分钟,返回新的对象,原对象日期不变 public static Date setMinutes(Date date, int amount); // 设置秒,返回新的对象,原对象日期不变 public static Date setSeconds(Date date, int amount); // 设置毫秒,返回新的对象,原对象日期不变 public static Date setMilliseconds(Date date, int amount); 4.5 日期转日历 // 将日期转为日历 public static Calendar toCalendar(Date date); // 将日期按时区转为日历 public static Calendar toCalendar(Date date, TimeZone tz); 4.6 初始化 // 将指定类型后面的日期初始化 // 可选类型:Calendar.SECOND Calendar.MINUTE Calendar.HOUR_OF_DAY Calendar.DAY_OF_MONTH Calendar.MONTH Calendar.YEAR public static Date round(Date date, int field); public static Calendar round(Calendar date, int field); public static Date round(Object date, int field); // 例: DateUtils.round(new Date(), Calendar.YEAR); // 2019-01-01 00:00:00 DateUtils.round(new Date(), Calendar.HOUR_OF_DAY); // 2019-08-15 01:00:00 // 从给定字段开始格式化截取日期,对一个时间对象的某个字段进行截取 public static Date truncate(Date date, int field); public static Calendar truncate(Calendar date, int field); public static Date truncate(Object date, int field); // 从给定字段开始“向上”格式化日期 public static Date ceiling(Date date, int field); public static Calendar ceiling(Calendar date, int field); public static Date ceiling(Object date, int field);


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3