我可以改变DateFormat.SHORT以包含秒或类似的东西吗?

时间:2009-12-04 10:17:27

标签: java date-format

在我的应用程序中,我使用的代码如下:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
df.setTimeZone(User.getTimeZone());
String s = df.format(d);

格式化在不同语言环境中使用的应用程序中的日期。我有时会为此增加几秒钟,但我不想只使用SimpleDateFormat指定一种特定的格式,因为我会失去基于语言环境的格式化的强大功能。

那么,任何人都有任何想法如何对区域设置格式的日期进行微小更改?

干杯,

克里斯

1 个答案:

答案 0 :(得分:0)

我发现的唯一直接解决方案是使用FieldPosition:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
df.setTimeZone(User.getTimeZone());
StringBuffer sb = new StringBuffer();
FieldPosition fp = new FieldPosition(DateFormat.MINUTE_FIELD);
sb = df.format(d, sb, fp);
sb.insert( fp.getEndIndex(), new SimpleDateFormat(":ss").format(d) );
String s = sb.toString();

这是在字符串中找到分钟字段的位置然后允许我在它之后直接添加秒。除了它有点难看之外,我能看到的唯一真正的问题是“:”可能不是正确的分隔符,它可能已经有几秒钟了。那么有人能看到更好的答案吗?