0

java.text.SimpleDateFormat 毕竟是 java.text.DateFormat 的实现。DateFormat 的这个实现可以理解以下模式字母

G Era designator
y Year
M Month in year
w Week in year
W Week in month
D Day in year
d Day in month
F Day of week in month
E Day in week
a Am/pm marker
H Hour in day (0-23)
k Hour in day (1-24)
K Hour in am/pm (0-11)
h Hour in am/pm (1-12)
m Minute in hour
s Second in minute
S Millisecond
z Time zone
Z Time zone

java.text.DateFormat还有其他的实现,可以理解一些其他的模式字母组吗?如果有,请告诉我。

4

2 回答 2

2

java.text.SimpleDateFormat是唯一公开的扩展 JDK 类java.text.DateFormat;但是,不能保证DateFormat的工厂方法,例如getDateInstance(),一定会返回 a java.text.SimpleDateFormat。相反,它们可以返回 JDK 实现提供的某个其他类的实例。(即使在这种情况下,我也不确定其他班级是否会“理解其他模式字母组”,正如您所建议的那样;相反,我如果语言环境具有日期解析并且 –格式需求比简单文本模式所能提供的更复杂,而不是语言环境需要不同的模式。但谁知道呢?)

正如Javadoc forjava.text.DateFormat所说:

如果您想对格式或解析进行更多控制(或想给您的用户更多控制权),您可以尝试将DateFormat您从工厂方法获得的SimpleDateFormat. 这将适用于大多数国家;只要记住把它放在一个try块中,以防遇到不寻常的块。

DateFormat如果需要,您可以使用自己的日期格式子类进行扩展。它的构造函数是protected,不是包私有的,所以你可以自由地继承它。

于 2013-02-06T06:00:19.907 回答
0

IBM 的 ICU 项目java.text.SimpleDateFormat中有一个替代类可用。你可以看看那个。但这只是一个替换类,与类无关。java.text.SimpleDateFormat

于 2013-02-06T05:56:50.377 回答