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

通过String类型的pattern自定义显示格式
String类型的pattern 指定format格式,参见SimpleDateFormat
timeZone 指定时区,若不指定,则使用系统默认的
locale  指定 国家区域,若不指定,则使用系统默认的

static FastDateFormat    getDateTimeInstance(int dateStyle, int timeStyle)
static FastDateFormat    getDateTimeInstance(int dateStyle, int timeStyle, Locale locale)
static FastDateFormat    getDateTimeInstance(int dateStyle, int timeStyle, TimeZone timeZone)
static FastDateFormat    getDateTimeInstance(int dateStyle, int timeStyle, TimeZone timeZone, Locale locale)
同时控制 日期和 时间的显示格式

使用style指定的日期和时间显示的完整性,静态字段提供


StringBuffer    format(Date date, StringBuffer buf)
StringBuffer    format(long millis, StringBuffer buf)
StringBuffer    format(Calendar calendar, StringBuffer buf)
将格式化后的字符串写入到一个StringBuffer对象中


String    format(long millis)
String    format(Date date)
String    format(Calendar calendar)

Date    parse(String source)
Date    parse(String source, ParsePosition pos)
从字符串解析一个Date,解析的模式是构造时决定的

String    getPattern()  获取fommat时的pattern

TimeZone  getTimeZone()   

Locale    getLocale()

例子:

import java.util.Date; import java.util.Locale; import org.apache.commons.lang3.time.FastDateFormat; /** * 当使用FastDateFormat.getInstance()构造时,需要和SimpleDateFomat一样,自定义格式化字符串。 * 当使用FastDateFormat.getDateTimeInstance() 构造时,需要 FastDateFormat的4个静态字段指定日期 和 时间显示的具体程度 * 当使用FastDateFormat.getDateInstance() 构造时,意为着你只想显示日期,需要 FastDateFormat的4个静态字段指定日期的显示的具体程度 * */ public class Test { public static void showCustom() { String pattern = "yyyy-MM-dd HH:mm:ss"; final FastDateFormat df = FastDateFormat.getInstance(pattern); System.out.println(df.format(new Date())); } public static void showDateAndTime() { final FastDateFormat df = FastDateFormat.getDateTimeInstance(FastDateFormat.FULL, FastDateFormat.FULL, Locale.CHINA); System.out.println(df.format(new Date())); } public static void showDate() { final FastDateFormat df = FastDateFormat.getDateInstance(FastDateFormat.LONG, Locale.CHINA); System.out.println(df.format(new Date())); } public static void main(String[] args) { showCustom(); showDateAndTime(); showDate(); /*Output * * 2016-10-15 16:18:49 2016年10月15日 星期六 下午04时18分49秒 CST 2016年10月15日 */ } }

SimpleDateFormat的时间字符串表达模式定义表

LetterDate or Time ComponentPresentationExamples
G   Era designator     AD  
y   Year     1996; 96  
Y   Week year     2009; 09  
M   Month in year (context sensitive)     July; Jul; 07  
L   Month in year (standalone form)     July; Jul; 07  
w   Week in year     27  
W   Week in month     2  
D   Day in year     189  
d   Day in month     10  
F   Day of week in month     2  
E   Day name in week     Tuesday; Tue  
u   Day number of week (1 = Monday, ..., 7 = Sunday)     1  
a   Am/pm marker     PM  
H   Hour in day (0-23)     0  
k   Hour in day (1-24)     24  
K   Hour in am/pm (0-11)     0  
h   Hour in am/pm (1-12)     12  
m   Minute in hour     30  
s   Second in minute     55  
S   Millisecond     978  
z   Time zone     Pacific Standard Time; PST; GMT-08:00  
Z   Time zone     -0800  
X   Time zone     -08; -0800; -08:00  

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

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