除了java.text.simpleDataFormat之外,还有其他java.text.DateFormat的实现吗
java.text.SimpleDataFormat毕竟是java.text.DateFormat的一个实现。DateFormat的这个实现可以理解以下模式字母除了java.text.simpleDataFormat之外,还有其他java.text.DateFormat的实现吗,java,simpledateformat,jdk1.6,date-format,Java,Simpledateformat,Jdk1.6,Date Format,java.text.SimpleDataFormat毕竟是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-
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实现,可以理解其他一些模式字母组?如果有,请告诉我。中的
java.text.simpleDataFormat
有一个替换类可用。你可以看看。但这只是一个替换类,与java.text.simpleDataFormat
类无关。java.text.simpleDataFormat
是唯一公开的扩展java.text.DateFormat
的JDK类;但是,不能保证DateFormat
的工厂方法,例如getDateInstance()
,一定会返回java.text.simpleDataFormat
。它们可以返回JDK实现提供的其他类的实例。(即使在这种情况下,我也不确定其他类是否会“理解其他模式字母组”,正如您所建议的;相反,我想如果区域设置有日期解析和格式设置需求,而不是区域设置需要不同的模式,那么这种情况更可能发生。但是谁知道呢?)
正如它所说:
如果您希望对格式或解析有更多的控制(或希望给用户更多的控制),可以尝试将从工厂方法获得的DateFormat
转换为SimpleDateFormat
。这将适用于大多数国家;只要记住把它放在try
块中,以防遇到不寻常的情况
如果需要,您可以使用自己的日期格式子类扩展
DateFormat
。它的构造函数是受保护的,而不是包私有的,因此您可以自由地对它进行子类化。我想您可以使用DateFormat类来实现自己的构造函数。Apache commons
有一个FastDateFormat
实现。虽然它不是jdkDateFormat
的后代,但它具有类似的功能,并且是线程安全的。()我使用自己的java.text.DateFormat子类委托给ICU。你可以两全其美。