使用apache.lang包安全简洁地操作Java时间(3)

public static String format(final Date date, final String pattern, final TimeZone timeZone, final Locale locale) { final FastDateFormat df = FastDateFormat.getInstance(pattern, timeZone, locale); return df.format(date); } public static String format(final Calendar calendar, final String pattern, final TimeZone timeZone, final Locale locale) { final FastDateFormat df = FastDateFormat.getInstance(pattern, timeZone, locale); return df.format(calendar); }

 

 

时间参数 可以是Date 对象 ,Calender 对象 ,或者一个相对于1970年的long整数 pattern ,如:"yyyy-MM-dd HH:mm:ss" 参见文章最后SimpleDateFormat格式表 Locale:地理,政治和文化地区 如Locale.CHINA TimeZone:时区偏移量. TimeZone.getTimeZone("GMT+:08:00"); 北京时间 TimeZone.getDefault() 默认 static String format(Calendar calendar, String pattern) static String format(Calendar calendar, String pattern, Locale locale) static String format(Calendar calendar, String pattern, TimeZone timeZone) static String format(Calendar calendar, String pattern, TimeZone timeZone, Locale locale) static String format(Date date, String pattern) static String format(Date date, String pattern, Locale locale) static String format(Date date, String pattern, TimeZone timeZone) static String format(Date date, String pattern, TimeZone timeZone, Locale locale) static String format(long millis, String pattern) static String format(long millis, String pattern, Locale locale) static String format(long millis, String pattern, TimeZone timeZone) static String format(long millis, String pattern, TimeZone timeZone, Locale locale) static String formatUTC(Date date, String pattern) static String formatUTC(Date date, String pattern, Locale locale) static String formatUTC(long millis, String pattern) static String formatUTC(long millis, String pattern, Locale locale)

DateUtils 在parse时内部利用了java自身的SimpleDateFormat(即便如此,DateUtils的操作都是是线程安全的,因为SimpleDateFromat是作为方法的局部变量使用的),而 DateFormatUtils 利用了apache开发的线程安全的FastDateFromat。因此,DateUtils和DateFormatUtils可以满足简单的时间操作了。如果需要更多的定制化操作,就可能需要

下面介绍的FastDateFormat了。

FastDateFormat

FastDateFormat是一个快速 且 线程安全的时间操作类,它完全可以替代SimpleDateFromat。

因为是线程安全的,所以你可以把它作为一个类的静态字段使用

构造函数为protected,不允许直接构造它的对象,可以通过工厂方法获取。

FastDateFormat之所以是线程安全的,是因为这个类是无状态的:内部的成员在构造时就完成了初始化,并在对象存活期,不提供任何API供外界修改他们。

FastDateFormat内部有很重要的2个对象:

分别完成解析和format工作。他们也都是线程安全的,都修饰为final。有兴趣的可以取读源代码。

静态字段

用于构造时,控制时间或者日期显示的完整性,FULL最完整,SHORT最次。
static int    FULL      表示完全显示

static int    LONG     

static int    MEDIUM 

static int    SHORT   

构造

static FastDateFormat    getDateInstance(int style)
static FastDateFormat    getDateInstance(int style, Locale locale)
static FastDateFormat    getDateInstance(int style, TimeZone timeZone)
static FastDateFormat    getDateInstance(int style, TimeZone timeZone, Locale locale)

只控制日期显示格式

使用style指定的日期显示的完整性,静态字段提供
timeZone 指定时区,若不指定,则使用系统默认的
locale  指定 国家区域,若不指定,则使用系统默认的




static FastDateFormat    getInstance()
static FastDateFormat    getInstance(String pattern)
static FastDateFormat    getInstance(String pattern, Locale locale)
static FastDateFormat    getInstance(String pattern, TimeZone timeZone)
static FastDateFormat    getInstance(String pattern, TimeZone timeZone, Locale locale)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/20f324c1df0aaf72b4e2128182af2634.html