public abstract class DateFormat extends Format
DateFormat
是一个抽象类的子类格式的日期/时间格式化和解析日期或独立于语言的方式时间。日期时间格式的子类,如
SimpleDateFormat
,允许的格式(例如,日期→文本),分析(文本→日期),和归一化。日期表示为
Date
对象或自1970年1月1日00:00:00 GMT毫秒,
DateFormat
提供的分类方法很多,用于获取默认日期/时间基于默认或指定的场所和一系列的格式样式格式化。格式化样式包括FULL
,LONG
,MEDIUM
,和SHORT
。在方法描述中提供了更多的细节和使用这些样式的示例。
DateFormat
帮助你格式化和解析任何区域的日期。您的代码可以完全独立于几个月的区域设置惯例,一周几天,甚至是日历格式:月球与太阳。
要为当前区域设置日期,使用静态工厂方法之一:
myString = DateFormat.getDateInstance().format(myDate);
如果您正在格式化多个日期,可以更有效地获取格式并使用它多次,这样系统就不必在多个时间获取本地语言和国家惯例的信息了。
DateFormat df = DateFormat.getDateInstance(); for (int i = 0; i < myDate.length; ++i) { output.println(df.format(myDate[i]) + "; "); }
格式化日期为不同区域,指定在调用getDateInstance()
。
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
你可以使用一个日期格式解析也。
myDate = df.parse(myString);
使用getDateInstance
为国家得到正常的日期格式。还有其他静态工厂方法可用。使用getTimeInstance
为国家得到时间格式。使用getDateTimeInstance
得到一个日期和时间格式。你可以通过不同的选项,这些工厂方法来控制结果的长度;从SHORT
到MEDIUM
到LONG
到FULL
。确切的结果取决于区域设置,但通常:
SHORT
完全是数字的,如12.13.52
或3:30pm
MEDIUM
较长,如Jan 12, 1952
LONG
较长,如January 12, 1952
或3:30:32pm
FULL
几乎是完全指定,如Tuesday, April 12, 1952 AD or 3:30:42pm PST
。您还可以设置格式的时区,如果您希望。如果你想要更多的控制在格式或解析,(或要给你的用户更多的控制,你可以试试)铸造你从工厂方法的一SimpleDateFormat
DateFormat
。这将为大多数国家工作;只记得把它放在一个try
块如果你遇到一个不寻常的人。
你也可以使用解析和ParsePosition
和FieldPosition
格式的方法,让你的形式
日期格式不同步。建议为每个线程创建单独的格式实例。如果多个线程同时访问一个格式,则必须在外部同步。
Modifier and Type | Class and Description |
---|---|
static class |
DateFormat.Field
定义常数,作为在
AttributedCharacterIterator 属性的钥匙从
DateFormat.formatToCharacterIterator 作为
FieldPosition 字段标识符返回。
|
Modifier and Type | Field and Description |
---|---|
static int |
AM_PM_FIELD
对于am_pm场对准有用的常数。
|
protected Calendar |
calendar
用于计算日期时间字段和时间的瞬间
Calendar 实例。
|
static int |
DATE_FIELD
日期字段对齐的有用常数。
|
static int |
DAY_OF_WEEK_FIELD
有用的常数day_of_week字段对齐。
|
static int |
DAY_OF_WEEK_IN_MONTH_FIELD
对于day_of_week_in_month场对准有用的常数。
|
static int |
DAY_OF_YEAR_FIELD
对于day_of_year场对准有用的常数。
|
static int |
DEFAULT
默认样式模式常量。
|
static int |
ERA_FIELD
用于时代场对准的有用常数。
|
static int |
FULL
全风格模式常数。
|
static int |
HOUR_OF_DAY0_FIELD
基于hour_of_day场对准零有用的常数。
|
static int |
HOUR_OF_DAY1_FIELD
一个基于hour_of_day场对准有用的常数。
|
static int |
HOUR0_FIELD
基于零的小时场对准的有用常数。
|
static int |
HOUR1_FIELD
基于一个小时场对准的有用常数。
|
static int |
LONG
长型图案常数。
|
static int |
MEDIUM
中等风格常数。
|
static int |
MILLISECOND_FIELD
毫秒场对准的有用常数。
|
static int |
MINUTE_FIELD
分钟场校准用的有用常数。
|
static int |
MONTH_FIELD
月场对准的有用常数。
|
protected NumberFormat |
numberFormat
这
DateFormat 用在日期和时间格式的数字的数字格式化。
|
static int |
SECOND_FIELD
用于第二场对准的有用常数。
|
static int |
SHORT
短风格模式常数。
|
static int |
TIMEZONE_FIELD
对于时区字段对齐有用的常数。
|
static int |
WEEK_OF_MONTH_FIELD
对于week_of_month场对准有用的常数。
|
static int |
WEEK_OF_YEAR_FIELD
对于week_of_year场对准有用的常数。
|
static int |
YEAR_FIELD
年场对准的有用常数。
|
Modifier | Constructor and Description |
---|---|
protected |
DateFormat()
创建一个新的日期格式。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
覆盖可复制
|
boolean |
equals(Object obj)
重写equals
|
String |
format(Date date)
将日期格式化为日期/时间字符串。
|
abstract StringBuffer |
format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)
将日期格式化为日期/时间字符串。
|
StringBuffer |
format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
重写格式。
|
static Locale[] |
getAvailableLocales()
返回一个数组的所有地方,这个班的
get*Instance 方法可以返回局部实例。
|
Calendar |
getCalendar()
获取与此相关的日历日期和时间格式。
|
static DateFormat |
getDateInstance()
获取与默认格式样式为默认
FORMAT 本地化的日期格式。
|
static DateFormat |
getDateInstance(int style)
获取与给定的格式设置样式为默认
FORMAT 本地化的日期格式。
|
static DateFormat |
getDateInstance(int style, Locale aLocale)
获取与给定的格式设置样式为给定的本地化的日期格式。
|
static DateFormat |
getDateTimeInstance()
获取日期/时间的默认格式样式为默认
FORMAT 现场格式化程序。
|
static DateFormat |
getDateTimeInstance(int dateStyle, int timeStyle)
获取日期/时间格式化与给定的日期和时间格式设置样式为默认
FORMAT 现场。
|
static DateFormat |
getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
获取日期/时间格式化与给定的格式设置样式为给定的现场。
|
static DateFormat |
getInstance()
获得一个默认的日期/时间格式化,使用短样式的日期和时间。
|
NumberFormat |
getNumberFormat()
获取此日期/时间格式化程序使用格式化数字格式化和解析时间。
|
static DateFormat |
getTimeInstance()
获取时间的默认格式样式为默认
FORMAT 现场格式化程序。
|
static DateFormat |
getTimeInstance(int style)
获取与给定的格式设置样式为默认
FORMAT 设置时间格式。
|
static DateFormat |
getTimeInstance(int style, Locale aLocale)
获取与给定的格式风格给现场的时间格式。
|
TimeZone |
getTimeZone()
获取时区。
|
int |
hashCode()
重写hashCode
|
boolean |
isLenient()
判断日期/时间分析是否是宽松的。
|
Date |
parse(String source)
解析文本从给定字符串的生产开始日期。
|
abstract Date |
parse(String source, ParsePosition pos)
根据给定的解析位置解析日期/时间字符串。
|
Object |
parseObject(String source, ParsePosition pos)
解析文本字符串以产生
Date 。
|
void |
setCalendar(Calendar newCalendar)
设置此日期格式所使用的日历。
|
void |
setLenient(boolean lenient)
指定是否要宽松的日期/时间分析。
|
void |
setNumberFormat(NumberFormat newNumberFormat)
您可以将数字格式化。
|
void |
setTimeZone(TimeZone zone)
设置此对象
DateFormat 日历的时区。
|
format, formatToCharacterIterator, parseObject
protected Calendar calendar
protected NumberFormat numberFormat
DateFormat
用在日期和时间格式的数字的数字格式化。子类应该初始化这一数字格式适合这
DateFormat
相关现场。
public static final int ERA_FIELD
public static final int YEAR_FIELD
public static final int MONTH_FIELD
public static final int DATE_FIELD
public static final int HOUR_OF_DAY1_FIELD
public static final int HOUR_OF_DAY0_FIELD
public static final int MINUTE_FIELD
public static final int SECOND_FIELD
public static final int MILLISECOND_FIELD
public static final int DAY_OF_WEEK_FIELD
public static final int DAY_OF_YEAR_FIELD
public static final int DAY_OF_WEEK_IN_MONTH_FIELD
public static final int WEEK_OF_YEAR_FIELD
public static final int WEEK_OF_MONTH_FIELD
public static final int AM_PM_FIELD
public static final int HOUR1_FIELD
public static final int HOUR0_FIELD
public static final int TIMEZONE_FIELD
public static final int FULL
public static final int LONG
public static final int MEDIUM
public static final int SHORT
public static final int DEFAULT
public final StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)
format
方法重写,继承类
Format
obj
-必须是数字或日期。
toAppendTo
-返回的时间字符串的字符串缓冲区。
fieldPosition
-跟踪领域的地位在返回的字符串。在输入:一个对齐字段,如果需要的话。输出:对准场的偏移量。例如,给定一个时间文本”1996.07.10广告15:08:56 PDT”,如果给定的力场排斥是dateformat.year_field,开始索引和结束索引力场排斥将被设置为0和4,分别。注意,如果同时出现一次以上的力场排斥的模式,将被设置为时间场的第一次出现。例如,日期时间格式字符串“下午1点PDT(太平洋夏令时)“使用模式”H z(ZZZZ)”,对齐场dateformat.timezone_field,开始索引和结束索引力场排斥将被设置为5和8,分别为时区模式特征的Z第一发生的。
Format
public abstract StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)
date
-日期被格式化为日期/时间字符串。
toAppendTo
-字符串缓冲区返回的日期/时间字符串。
fieldPosition
-跟踪领域的地位在返回的字符串。在输入:一个对齐字段,如果需要的话。输出:对准场的偏移量。例如,给定一个时间文本”1996.07.10广告15:08:56 PDT”,如果给定的力场排斥是dateformat.year_field,开始索引和结束索引力场排斥将被设置为0和4,分别。注意,如果同时出现一次以上的力场排斥的模式,将被设置为时间场的第一次出现。例如,日期时间格式字符串“下午1点PDT(太平洋夏令时)“使用模式”H z(ZZZZ)”,对齐场dateformat.timezone_field,开始索引和结束索引力场排斥将被设置为5和8,分别为时区模式特征的Z第一发生的。
public final String format(Date date)
date
-被格式化成一个时间线的时间价值。
public Date parse(String source) throws ParseException
看到日期上的更多信息parse(String, ParsePosition)
方法解析。
source
-
String
始应解析。
Date
解析字符串。
ParseException
-如果不能指定字符串的开始被解析。
public abstract Date parse(String source, ParsePosition pos)
"07/10/96 4:5 PM, PDT"
将被分解成一
Date
,相当于
Date(837039900000L)
。
默认情况下,分析是宽松的:如果输入不使用该对象的格式方法使用的形式,但仍然可以解析为一个日期,然后解析成功。客户可能会坚持严格遵守格式要求setLenient(false)
。
这一分析操作使用calendar
产生Date
。因此,该calendar
的日期时间字段和TimeZone
值可能已被覆盖,根据子类的实现。此前已经设置了呼叫setTimeZone
任何TimeZone
值可能需要恢复为进一步的行动。
source
-日期/时间的字符串进行解析
pos
-输入,在该位置开始解析;对输出的位置,分析终止,或开始的位置如果解析失败。
Date
,或
null
如果输入无法解析
public Object parseObject(String source, ParsePosition pos)
Date
解析文本开始了pos
索引的方法尝试。如果分析成功,那么pos
索引更新索引的最后一个字符后(解析不一定使用所有字符到字符串的末尾),并解析返回的日期。更新pos
可以用来指示下一个调用这个方法的出发点。如果出现错误,那么pos
指标没有发生变化,对pos
误差指标设置为错误发生位置的字符的索引,并返回null。
看到日期上的更多信息parse(String, ParsePosition)
方法解析。
parseObject
方法重写,继承类
Format
source
-
String
,其中一部分会被解析。
pos
-一个指标和误差指标上述信息,
ParsePosition
对象。
Date
解析字符串。在错误的情况下,返回空。
NullPointerException
-如果
pos
是空的。
public static final DateFormat getTimeInstance()
FORMAT
现场格式化程序。
这相当于调用getTimeInstance(DEFAULT, Locale.getDefault(Locale.Category.FORMAT))
。
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static final DateFormat getTimeInstance(int style)
FORMAT
设置时间格式。
这相当于调用getTimeInstance(style, Locale.getDefault(Locale.Category.FORMAT))
。
style
-给定的格式设置样式。例如,在美国地区的缩写为“H:mm A”。
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static final DateFormat getTimeInstance(int style, Locale aLocale)
style
-给定的格式设置样式。例如,在美国地区的缩写为“H:mm A”。
aLocale
-给定的现场。
public static final DateFormat getDateInstance()
FORMAT
本地化的日期格式。
这相当于调用getDateInstance(DEFAULT, Locale.getDefault(Locale.Category.FORMAT))
。
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static final DateFormat getDateInstance(int style)
FORMAT
本地化的日期格式。
这相当于调用getDateInstance(style, Locale.getDefault(Locale.Category.FORMAT))
。
style
-给定的格式设置样式。例如,简称“M / D /日”在美国现场。
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static final DateFormat getDateInstance(int style, Locale aLocale)
style
-给定的格式设置样式。例如,简称“M / D /日”在美国现场。
aLocale
-给定的现场。
public static final DateFormat getDateTimeInstance()
FORMAT
现场格式化程序。
这相当于调用getDateTimeInstance(DEFAULT, DEFAULT, Locale.getDefault(Locale.Category.FORMAT))
。
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle)
FORMAT
现场。
这相当于调用getDateTimeInstance(dateStyle, timeStyle, Locale.getDefault(Locale.Category.FORMAT))
。
dateStyle
-给定的日期格式样式。例如,简称“M / D /日”在美国现场。
timeStyle
-给定的时间格式设置样式。例如,在美国地区的缩写为“H:mm A”。
Locale.getDefault(java.util.Locale.Category)
,
Locale.Category.FORMAT
public static final DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)
dateStyle
-给定的日期格式样式。
timeStyle
-给定的时间格式设置样式。
aLocale
-给定的现场。
public static final DateFormat getInstance()
public static Locale[] getAvailableLocales()
get*Instance
方法可以返回局部实例。返回的数组是由java运行时支持的地区联盟,通过安装
DateFormatProvider
实现。它必须包含至少一个
Locale
实例等于
Locale.US
。
DateFormat
实例可用数组。
public void setCalendar(Calendar newCalendar)
newCalendar
-被日期格式使用新
Calendar
public Calendar getCalendar()
public void setNumberFormat(NumberFormat newNumberFormat)
newNumberFormat
-给定的新解析。
public NumberFormat getNumberFormat()
public void setTimeZone(TimeZone zone)
DateFormat
日历的时区。此方法相当于以下调用。
getCalendar().setTimeZone(zone)
的TimeZone
设置的方法是覆盖一setCalendar
呼叫。
的TimeZone
设置的方法可能被覆盖,由于调用parse方法。
zone
-赋予新的时区。
public TimeZone getTimeZone()
getCalendar().getTimeZone()
public void setLenient(boolean lenient)
此方法相当于以下调用。
getCalendar().setLenient(lenient)
这种宽容,价值是被调用setCalendar()
。
lenient
当
true
,解析是宽容的
Calendar.setLenient(boolean)
public boolean isLenient()
getCalendar().isLenient()
true
如果
calendar
宽松;
false
否则。
Calendar.isLenient()
public int hashCode()
hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
equals
方法重写,继承类
Object
obj
-参考对象的比较。
true
obj参数相同;
false
否则。
Object.hashCode()
,
HashMap
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.