gpt4 book ai didi

java - 保证 DateFormat 的年份字段只有两位数的便携方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:54 27 4
gpt4 key购买 nike

目前,我有

private ThreadLocal<DateFormat> shortDateFormat = new ThreadLocal<DateFormat>() {
@Override protected DateFormat initialValue() {
final DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT);
return format;
}
};

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

19/07/2013

但是,有时我想要更短的版本,例如 19/07/13

我不想硬编码为

日/月/年

由于上述方式不能跨不同国家移植。有些国家,他们的月份早于日期。

有什么可移植的方法可以实现吗?

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 替换为 replacement

"y{4}" 查看一系列 4 y 的日期格式模式,并且
“yy” 表示如果您看到 4 个 y,请将它们替换为 2。

希望对您有所帮助。祝你好运。

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

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

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

关于java - 保证 DateFormat 的年份字段只有两位数的便携方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17730404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com