目前,我有
private ThreadLocal<DateFormat> shortDateFormat = new ThreadLocal<DateFormat>() {
@Override protected DateFormat initialValue() {
final DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT);
return format;
}
};
Run Code Online (Sandbox Code Playgroud)
使用我的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"));
Run Code Online (Sandbox Code Playgroud)
说明:
applyPattern(String pattern)将给定的模式字符串应用于此日期格式。
dateFormat.toPattern()获取当前模式
dateFormat.toPattern().replaceAll(String regex, String replacement)返回当前模式,并regex替换为replacement。
"y{4}"查看日期格式模式中是否有一系列 4 y,并
"yy"表示如果看到 4 y,请将其替换为 2。
希望有帮助。祝你好运。
编辑:
正如 MH 指出的,由于这是针对 android 的,因此使用可能更合适:
SimpleDateFormat dateFormat = (SimpleDateFormat)
android.text.format.DateFormat.getDateFormat(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)
这应该可以正常工作,因为上面的方法调用返回 a DateFormatof java.text.DateFormat,而不是 of android.text.format.DateFormat。
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |