java – 保证DateFormat的year字段只有两位数的便携方式

前端之家收集整理的这篇文章主要介绍了java – 保证DateFormat的year字段只有两位数的便携方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

目前,我有

private ThreadLocal

使用我的Android 4.1,这为我提供了日期格式(在我的本地化.对于其他国家可能看起来不同)

19/07/2013

但是,有时我希望有一个更短的版本,如19/07/13

我不想硬编码

DD / MM / YY

由于上述方式不能在不同国家之间移植.有些国家,他们的月份是在约会之前.

有没有可行的方法来实现这一目标?

p / s不仅是月/日订单.可能还有其他问题.例如,中国正在使用19-07-13或19-07-2013.其他国家可能会有更多边缘案例,但我不知道.

最佳答案
SimpleDateFormat dateFormat= (SimpleDateFormat) DateFormat.getDateInstance();
dateFormat.applyPattern(dateFormat.toPattern().replaceAll("y{4}","yy"));

说明:
applyPattern(String pattern)将给定的模式字符串应用于此日期格式.

dateFormat.toPattern()获取当前模式
dateFormat.toPattern().replaceAll(String regex,String replacement)返回当前模式,regex替换为替换.

“y {4}”查看一系列4 y的日期格式模式,并且
“yy”说,如果你看到4年代,请用2替换它们.

希望有所帮助.祝好运.

编辑:
正如MH指出的那样,因为这是针对android的,所以使用它可能更合适:

SimpleDateFormat dateFormat = (SimpleDateFormat)     
                 android.text.format.DateFormat.getDateFormat(getApplicationContext());

这应该工作正常,因为上面的方法调用返回java.text.DateFormat的DateFormat,而不是android.text.format.DateFormat.

猜你在找的Android相关文章