1

在我的应用程序中,我使用这样的代码:

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

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

那么,有人知道如何对语言环境格式的日期进行细微更改吗?

干杯,

克里斯

4

1 回答 1

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();

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

于 2009-12-04T11:32:53.467 回答