2009-12-04 80 views
1

在我的应用我使用这样的代码:我可以改变DateFormat.SHORT以包括秒或类似的东西吗?

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

在应用程序格式的日期是在不同的语言环境中使用。有时候,我想添加几秒钟,但我不想仅使用SimpleDateFormat指定一种特定格式,因为我将失去基于区域设置的格式化的功能。

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

干杯,

克里斯

+1

也许乔达时间(http://joda-time.sourceforge.net/)可以帮助你满足这两个要求(不是'答案',因为我从来没有使用乔达时间,但大多数人都喜欢它) – 2009-12-04 10:40:11

+0

嗯,它似乎使用FieldPosition可能会有所帮助。 – 2009-12-04 11:20:51

+0

回复:乔达时间 - 看起来不错,我可能不得不在这个项目中进一步研究。谢谢。 – 2009-12-04 11:36:42

回答

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

这是找到分钟字段的字符串中的位置,然后让我在它后面添加秒。我能看到的唯一真正的问题,除了它有点难看外,“:”可能不是正确的分隔符,它可能已经有秒。所以任何人都可以看到更好的答案?

相关问题